建议食用原文链接效果更佳

Python 加密解密技巧大揭秘:让你的数据安全无忧

今天我们将探讨在 Python 中常见的加密解密算法,并通过代码案例来帮助大家更好地理解它们的实现。

在开始之前,请确保您已经安装了 pycryptodome 这个库。您可以使用以下命令进行安装:

pip install pycryptodome

1. DES 加密算法

DES(Data Encryption Standard)是一种对称加密算法,其密钥长度为 56 位。以下是一个简单的 Python 实现:

from Crypto.Cipher import DES  from Crypto.Util.Padding import pad, unpad  import 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 DES3  from Crypto.Util.Padding import pad, unpad  import 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 RSA  from Crypto.Cipher import PKCS1_OAEP  from Crypto.Random import get_random_bytes  import 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 AES    from Crypto.Util.Padding import pad, unpad    import 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 常见加密解密算法的解析及代码案例。

加密和解密算法在实际应用中扮演着重要的角色,掌握这些算法对于程序员和初学者来说是非常有益的。

希望这篇文章能对您有所帮助。

09-06 06:06