用Python实现非对称加密算法

2023-03-26 00:00:00 python 加密算法 非对称

实现非对称加密算法的常用方式是使用加密算法库,比如Python中的cryptography库。下面给出一个使用该库实现非对称加密算法的例子,使用的是RSA算法。

from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import serialization, hashes

# 生成RSA密钥对
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
public_key = private_key.public_key()

# 待加密的明文
plaintext = b"pidancode.com"

# 使用公钥进行加密
ciphertext = public_key.encrypt(plaintext, padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None))

# 使用私钥进行解密
decrypted_plaintext = private_key.decrypt(ciphertext, padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None))

print("加密后的密文:", ciphertext)
print("解密后的明文:", decrypted_plaintext)

输出结果:

加密后的密文: b'\xa5\xaf\xf5j\xd9\x9b\x87@\x92\xb3oK<\xc6\xfe\xca\xfd\xe5\xfd\xf5A\x87\x9e\xba>\x89+\x86\x8d\xd3\xc1\x0f\xa4\xdcC\xb0\xa6\x8c6\xfb\xc6\xfc\xd6l`S8\xc8\x05\xfc\xc6\xe9\xe0\xc7\x9bI\xb8\xb2Q\x1c$\xe1b\xe3\xea\xd3O\xfd\xfb\xfa\xa1\xd9i[\x8aGz\xc3uq\x10\x0e!\xb5y\xcc\x83*\xe1\xbf\xba\x9e\xb8\xf0\x8c\x92\xad\x84\xe4n\xe4\x1b\xc4\xa4\xef\x85t\x9f\x8eS\x8a\xf5\x84\xad\x0b\x8a\xd4\xf4}\x11\xf1\xbdh\x8d\x83)\xae[\x85\xee\x07\xe5\xe8R\xcc\x18\xa1\xb7\xb6\xb9\xb9\x8b\xf2s\x1a\x1f&\x18\x8d6\x97\x94\xd7e&\x17\xf8Z\xeb\xa8\x99w\xeb\x94\x1e\x8b\xb5\xaa\x91\xdc\xcb\x9aA#\x8f}\x1c\x1a\xdd6\xb3I\xcb\xfc\xf3\xd9-\x07\xa9\xdcA\x8e\xd6?\xc2\xe2\xe1\xe2kW\x8fP\xbc\xca\xcf\xf5\x13\x8d\xf8\xdc\x8e\t\xef\x88\x15\xf4t\xb4\x98\x1f\xb7\xd9\x9b\xcd\x94\xec\x83\xe5C\x18\xa3K\n^\xae\xf1\xd2`\x16\x9a\t\x8bZ$\xe3\xedB\xc7\xf6\t\xdc\xdc\xf8B1"\xbe\t\xc7\x

相关文章