在Python中,我们可以使用以下方式进行加密和解密:
1. 对称加密:
- 使用相同的密钥加密和解密。常用算法有AES,DES等。
- Python使用OpenSSL库实现对称加密。
例如:
from OpenSSL import crypto
key = b'123456' # 密钥
# 加密
cipher = crypto.Cipher(crypto.AES(key), crypto.MODE_CBC, iv)
encryptor = cipher.encryptor()
ct = encryptor.update(b'mysecret')
# 解密
decipher = crypto.Cipher(crypto.AES(key), crypto.MODE_CBC, iv)
decryptor = decipher.decryptor()
pt = decryptor.update(ct)
print(pt) # b'mysecret'
2. 非对称加密:
- 使用公钥加密,私钥解密。常用算法有RSA,ECC等。
- Python使用OpenSSL库实现非对称加密。
例如:
from OpenSSL import crypto
# 生成密钥对
key = crypto.PKey()
key.generate_key(crypto.TYPE_RSA, 2048)
# 获取公钥字符串
public_key = crypto.dump_publickey(crypto.FILETYPE_PEM, key)
# 加密
cipher = crypto.Cipher_PKCS1_OAEP.new(key)
ct = cipher.encrypt(b'password')
# 解密
key = crypto.load_pem_public_key(public_key)
cipher = crypto.Cipher_PKCS1_OAEP.new(key)
pt = cipher.decrypt(ct)
print(pt) # b'password'
OpenSSL是Python中最流行的加密库,掌握它可以帮助我们的程序实现强大的加密功能。对称加密和非对称加密各有优点,我们需要根据具体需要选择合适的加密算法和工具。