Python中使用OAEP加密算法保护敏感数据的方法
发布时间:2024-01-12 21:56:39
在Python中使用OAEP加密算法保护敏感数据的方法如下:
1. 导入所需的库和模块
from cryptography.hazmat.primitives import hashes from cryptography.hazmat.primitives.asymmetric import padding, rsa from cryptography.hazmat.primitives import serialization from cryptography.hazmat.backends import default_backend
2. 生成RSA密钥对
private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048,
backend=default_backend()
)
public_key = private_key.public_key()
3. 将公钥和私钥保存到文件
private_pem = private_key.private_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PrivateFormat.PKCS8,
encryption_algorithm=serialization.NoEncryption()
)
with open('private.pem', 'wb') as f:
f.write(private_pem)
public_pem = public_key.public_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PublicFormat.SubjectPublicKeyInfo
)
with open('public.pem', 'wb') as f:
f.write(public_pem)
4. 加载公钥和私钥
with open('private.pem', 'rb') as f:
private_pem = f.read()
private_key = serialization.load_pem_private_key(private_pem, password=None, backend=default_backend())
with open('public.pem', 'rb') as f:
public_pem = f.read()
public_key = serialization.load_pem_public_key(public_pem, backend=default_backend())
5. 使用公钥进行加密和私钥进行解密
data = b'This is sensitive data'
# 加密
ciphertext = public_key.encrypt(
data,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
# 解密
plaintext = private_key.decrypt(
ciphertext,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
print("原始数据:", data)
print("解密后的数据:", plaintext)
以上就是使用OAEP加密算法保护敏感数据的方法和示例代码。OAEP算法是一种安全可靠的加密算法,它可以在保护数据机密性的同时提高安全性,防止数据被篡改和伪造。
