python之pycryptodome模块,加密算法库
PyCryptodome是一个Python库,提供了一系列加密算法,包括对称加密、非对称加密以及哈希算法等。它是PyCrypto的一个分支版本,并且继续被维护。
以下是一些使用PyCryptodome库进行加密的示例代码:
- 使用AES进行对称加密:
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
key = get_random_bytes(16) # 生成一个16字节的密钥
cipher = AES.new(key, AES.MODE_EAX) # 创建一个新的AES密码算法实例
data = b"secret data" # 需要加密的数据
ciphertext, tag = cipher.encrypt_and_digest(data) # 执行加密操作
# 保存密钥和加密数据
print("Cipher:", cipher.name)
print("Tag:", tag)
print("Ciphertext:", ciphertext)
- 使用RSA进行非对称加密:
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
rsa = RSA.generate(2048) # 生成一个2048位的公钥
public_key = rsa.publickey()
data = b"secret data" # 需要加密的数据
# 使用公钥加密数据
cipher = PKCS1_OAEP.new(public_key)
encrypted = cipher.encrypt(data)
# 保存公钥和加密数据
print("Public key:", public_key.export_key())
print("Encrypted data:", encrypted)
- 使用SHA256进行哈希加密:
from Crypto.Hash import SHA256
message = b"secret data" # 需要哈希的数据
# 创建哈希对象并更新数据
hasher = SHA256.new()
hasher.update(message)
# 获取哈希值
print("Digest:", hasher.digest())
这些示例展示了如何使用PyCryptodome库中的不同加密算法进行数据加密、解密、签名和验证。在实际应用中,你需要根据具体需求选择合适的算法,并确保安全性、完整性和保密性。
评论已关闭