12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
ADADADADAD
编程知识 时间:2024-12-07 12:35:52
作者:文/会员上传
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
在Python中,加密和解密可以通过多种方式实现。以下是一些常用的加密和解密技巧:使用标准库cryptography:cryptography是一个功能强大的加密库,提供了许多加密算法,如AES、DES和R
以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。
在Python中,加密和解密可以通过多种方式实现。以下是一些常用的加密和解密技巧:
cryptography
:cryptography
是一个功能强大的加密库,提供了许多加密算法,如AES、DES和RSA等。以下是使用AES加密和解密的示例:
from cryptography.fernet import Fernet# 生成密钥key = Fernet.generate_key()# 创建Fernet对象cipher_suite = Fernet(key)# 加密数据data = b"Hello, World!"encrypted_data = cipher_suite.encrypt(data)print("Encrypted data:", encrypted_data)# 解密数据decrypted_data = cipher_suite.decrypt(encrypted_data)print("Decrypted data:", decrypted_data.decode())
pycryptodome
:pycryptodome
是另一个流行的加密库,提供了许多加密算法,如AES、DES和RSA等。以下是使用AES加密和解密的示例:
from Crypto.Cipher import AESfrom Crypto.Random import get_random_bytesfrom Crypto.Util.Padding import pad, unpadimport base64# 生成密钥key = get_random_bytes(16)# 创建AES对象cipher = AES.new(key, AES.MODE_CBC)# 加密数据data = b"Hello, World!"iv = cipher.ivencrypted_data = cipher.encrypt(pad(data, AES.block_size))print("Encrypted data:", base64.b64encode(iv + encrypted_data).decode())# 解密数据iv = base64.b64decode(encrypted_data[:16])encrypted_data = base64.b64decode(encrypted_data[16:])cipher = AES.new(key, AES.MODE_CBC, iv)decrypted_data = unpad(cipher.decrypt(encrypted_data), AES.block_size)print("Decrypted data:", decrypted_data.decode())
pyOpenSSL
:pyOpenSSL
是一个基于OpenSSL的Python库,提供了许多加密算法,如AES、DES和RSA等。以下是使用AES加密和解密的示例:
import OpenSSL# 生成密钥key = OpenSSL.rand(OpenSSL.crypto.SHA256().digest_size)cipher = OpenSSL.crypto.Cipher("AES-256-CBC", key, None)# 加密数据data = b"Hello, World!"encrypted_data = cipher.encrypt(data)print("Encrypted data:", encrypted_data)# 解密数据cipher = OpenSSL.crypto.Cipher("AES-256-CBC", key, None)cipher.set_iv(encrypted_data[:cipher.iv_length])decrypted_data = cipher.decrypt(encrypted_data[cipher.iv_length:])print("Decrypted data:", decrypted_data)
在使用这些库时,请确保正确处理密钥和初始化向量(IV),因为它们对于解密过程至关重要。同时,注意选择合适的加密算法和模式,以确保数据的安全性。
11-20
11-19
11-20
11-20
11-20
11-19
11-20
11-20
11-19
11-20
11-19
11-19
11-19
11-19
11-19
11-19