在当今数字化时代,数据安全至关重要。非对称加密是一种广泛使用的加密技术,尤其适用于网络通信、数字签名和身份验证等场景。本文将带你从零开始,使用Python非对称加密中的经典算法——RSA,轻松掌握公钥与私钥的生成、加密与解密全过程。
与对称加密(如AES)不同,非对称加密使用一对密钥:一个公钥(public key)用于加密数据,一个私钥(private key)用于解密数据。公钥可以公开分享,而私钥必须严格保密。
这种机制解决了密钥分发难题,是HTTPS、SSH、数字证书等安全协议的基础。在Python加密教程中,RSA是最常用的非对称加密算法之一。
我们将使用 cryptography 库,它是Python官方推荐的安全加密库,功能强大且易于使用。
在终端运行以下命令安装:
pip install cryptography 首先,我们需要生成一对公钥和私钥。以下是完整的代码示例:
from cryptography.hazmat.primitives.asymmetric import rsafrom cryptography.hazmat.primitives import serialization# 生成私钥(建议使用2048位或更高)private_key = rsa.generate_private_key( public_exponent=65537, key_size=2048,)# 从私钥中提取公钥public_key = private_key.public_key()# 将私钥序列化为PEM格式(可保存到文件)private_pem = private_key.private_bytes( encoding=serialization.Encoding.PEM, format=serialization.PrivateFormat.PKCS8, encryption_algorithm=serialization.NoEncryption())# 将公钥序列化为PEM格式public_pem = public_key.public_bytes( encoding=serialization.Encoding.PEM, format=serialization.PublicFormat.SubjectPublicKeyInfo)# 打印密钥(实际应用中应保存到安全位置)print("私钥:\n", private_pem.decode())print("公钥:\n", public_pem.decode()) 现在我们有了公钥,可以用它来加密一段明文消息。注意:RSA只能加密比密钥长度短的数据(例如2048位密钥最多加密245字节),因此通常用于加密对称密钥或小段数据。
from cryptography.hazmat.primitives.asymmetric import paddingfrom cryptography.hazmat.primitives import hashes# 要加密的明文(必须是bytes类型)message = b"Hello, this is a secret message!"# 使用公钥加密encrypted_message = public_key.encrypt( message, padding.OAEP( mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None ))print("加密后的数据(base64编码):")import base64print(base64.b64encode(encrypted_message).decode()) 只有持有私钥的一方才能解密数据。以下是解密过程:
# 使用私钥解密original_message = private_key.decrypt( encrypted_message, padding.OAEP( mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None ))print("解密后的原始消息:", original_message.decode()) 通过本教程,你已经掌握了如何在Python中实现RSA加密解密的基本流程。无论是构建安全通信系统,还是理解数字签名原理,这些知识都是基础中的基础。记住,安全无小事,务必遵循最佳实践。
希望这篇Python非对称加密教程对你有帮助!如果你是初学者,不妨动手运行代码,加深理解。后续还可以探索数字签名、证书验证等高级主题。
关键词:Python非对称加密, RSA加密解密, Python加密教程, 公钥私钥加密
本文由主机测评网于2025-12-07发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025124074.html