263net企业邮箱可靠的网站优化
建议食用原文链接效果更佳
Python 加密解密技巧大揭秘:让你的数据安全无忧
今天我们将探讨在 Python 中常见的加密解密算法,并通过代码案例来帮助大家更好地理解它们的实现。
在开始之前,请确保您已经安装了 pycryptodome 这个库。您可以使用以下命令进行安装:
pip install pycryptodome
1. DES 加密算法
DES(Data Encryption Standard)是一种对称加密算法,其密钥长度为 56 位。以下是一个简单的 Python 实现:
from Crypto.Cipher import DESfrom Crypto.Util.Padding import pad, unpadimport base64# 要加密的文本text = "Hello, world!"# 使用 DES-ECB 模式加密cipher = DES.new('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890', DES.MODE_ECB)cipher_text = base64.b64encode(cipher.encrypt(pad(text.encode(), DES.block_size)))print("DES 加密结果:", cipher_text.decode('utf-8'))# 使用 DES-ECB 模式解密plain_text = unpad(cipher.decrypt(base64.b64decode(cipher_text)), DES.block_size)print("DES 解密结果:", plain_text.decode('utf-8'))
2. 3DES 加密算法
3DES(Triple Data Encryption Standard)是一种对称加密算法,它是 DES 的增强版。以下是一个简单的 Python 实现:
from Crypto.Cipher import DES3from Crypto.Util.Padding import pad, unpadimport base64# 要加密的文本text = "Hello, world!"# 使用 3DES-ECB 模式加密cipher = DES3.new('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890', DES3.MODE_ECB)cipher_text = base64.b64encode(cipher.encrypt(pad(text.encode(), DES3.block_size)))print("3DES 加密结果:", cipher_text.decode('utf-8'))# 使用 3DES-ECB 模式解密plain_text = unpad(cipher.decrypt(base64.b64decode(cipher_text)), DES3.block_size)print("3DES 解密结果:", plain_text.decode('utf-8'))
3. SHA-256 加密算法
SHA-256(Secure Hash Algorithm 256)是一种哈希算法,它不属于加密算法,但是它可以对数据进行摘要,生成一个固定长度的摘要值,通常用于数据完整性验证和数字签名等场景。以下是一个简单的 Python 实现:
import hashlib# 要加密的文本text = "Hello, world!"# 使用 SHA-256 进行加密hash_object = hashlib.sha256(text.encode())hash_hex = hash_object.hexdigest()print("SHA-256 加密结果:", hash_hex)
4. RSA 加密算法(非对称加密)
RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,它需要一对密钥,分别为公钥和私钥。以下是一个简单的 Python 实现:
from Crypto.PublicKey import RSAfrom Crypto.Cipher import PKCS1_OAEPfrom Crypto.Random import get_random_bytesimport base64# 生成 RSA 密钥对key = RSA.generate(2048)# 获取私钥和公钥private_key = key.export_key()public_key = key.publickey().export_key()# 要加密的文本text = "Hello, world!"#使用 RSA 公钥加密cipher = PKCS1_OAEP.new(public_key)cipher_text = base64.b64encode(cipher.encrypt(pad(text.encode(), AES.block_size)))print("RSA 加密结果(公钥):", cipher_text.decode('utf-8'))#使用 RSA 私钥解密plain_text = unpad(cipher.decrypt(base64.b64decode(cipher_text)), AES.block_size)print("RSA 解密结果(私钥):", plain_text.decode('utf-8'))
5. AES 加密算法
AES(Advanced Encryption Standard)是一种对称加密算法,它是目前广泛应用的加密标准之一。以下是一个简单的 Python 实现:
from Crypto.Cipher import AESfrom Crypto.Util.Padding import pad, unpadimport base64# 要加密的文本text = "Hello, world!"# 使用 AES-CBC 模式加密cipher = AES.new('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890', AES.MODE_CBC)cipher_text = base64.b64encode(cipher.encrypt(pad(text.encode(), AES.block_size)))print("AES 加密结果(CBC 模式):", cipher_text.decode('utf-8'))# 使用 AES-CBC 模式解密plain_text = unpad(cipher.decrypt(base64.b64decode(cipher_text)), AES.block_size)print("AES 解密结果(CBC 模式):", plain_text.decode('utf-8'))
以上就是关于 Python 常见加密解密算法的解析及代码案例。
加密和解密算法在实际应用中扮演着重要的角色,掌握这些算法对于程序员和初学者来说是非常有益的。
希望这篇文章能对您有所帮助。
