python在密码学领域常用场景包括对称加密、哈希处理和非对称加密。1.使用cryptography库实现aes-gcm对称加密,可加密和解密数据,需注意nonce唯一性和密钥保密;2.用hashlib结合salt及bcrypt实现安全密码存储,避免使用md5或sha-1;3.通过pycryptodome进行rsa非对称加密,适合小数据加密和数字签名,私钥必须严格保密。这些方法覆盖了常见需求,推荐使用成熟库并遵循最佳实践以确保安全性。
Python 在密码学领域的应用非常广泛,尤其适合用来实现加密、解密、签名和验证等操作。如果你是刚接触这个方向的开发者,可能会对 Python 提供哪些加密库、怎么用它们做基本的加解密感到有点迷茫。其实只要掌握几个常用库和使用方式,就能快速上手实战。
下面从几个实际场景出发,说说你最可能需要用到的几种情况和做法。
在很多场景下,我们只需要用一个密钥来加密和解密数据,这时候对称加密是最直接的选择。常用的算法有 AES(高级加密标准),而 Python 的 cryptography 库就很好地支持它。
立即学习“Python免费学习笔记(深入)”;
举个例子:你想把一段文本加密后保存到文件或数据库里,之后还能还原回来。
from cryptography.hazmat.primitives.ciphers.aead import AESGCM import os key = AESGCM.generate_key(bit_length=256) aesgcm = AESGCM(key) nonce = os.urandom(12) # 必须唯一且不可重复使用 data = b"这是要加密的数据" encrypted = aesgcm.encrypt(nonce, data, None) decrypted = aesgcm.decrypt(nonce, encrypted, None)
注意点:
很多时候我们不直接存储用户密码,而是存储它的哈希值。这时候就要用到像 SHA-256、SHA-3 这类哈希算法。
比如注册登录系统中,用户输入密码后,程序应该只保留它的哈希结果:
import hashlib password = b"user_password_123" hash_obj = hashlib.sha256(password) print(hash_obj.hexdigest())
更推荐的做法是加上 salt(盐值)并使用专门的密码哈希函数如 bcrypt 或 scrypt:
pip install bcrypt
import bcrypt password = b"mysecretpassword" salt = bcrypt.gensalt() hashed = bcrypt.hashpw(password, salt) # 验证时 if bcrypt.checkpw(password, hashed): print("匹配")
要点:
当你需要一对密钥(公钥和私钥),并且希望别人用你的公钥加密信息,只有你能用私钥解密,这时候就需要非对称加密。RSA 是常见的一种方式。
安装方法:pip install pycryptodome
生成密钥对并加密:
from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_OAEP key = RSA.generate(2048) private_key = key.export_key() public_key = key.publickey().export_key() # 用公钥加密 cipher_rsa = PKCS1_OAEP.new(RSA.import_key(public_key)) encrypted_data = cipher_rsa.encrypt(b"Secret message") # 用私钥解密 cipher_rsa = PKCS1_OAEP.new(RSA.import_key(private_key)) decrypted_data = cipher_rsa.decrypt(encrypted_data)
注意事项:
以上几种情况涵盖了大多数 Python 开发者在密码学方面的需求。你可以根据具体业务选择合适的加密方式:
基本上就这些。别看步骤多,只要熟悉流程,用起来并不难。不过还是那句话,密码学是个专业领域,自己实现算法风险很大,最好使用成熟库,并遵循最佳实践。
以上就是Python密码学基础 Python加密算法库实战的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号