DES密码算法Python实现
时间: 2024-11-09 13:29:40 浏览: 10
python实现DES算法
DES(Data Encryption Standard)是一种分组加密算法,全称为Data Encryption Standard,常用于对数据进行加密和解密。Python中有标准库`cryptography`可以直接支持DES算法,以下是基本的DEShexlify、encrypt和decrypt操作的一个简单示例:
```python
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.backends import default_backend
import binascii
def des_encrypt(plaintext, key):
key = binascii.unhexlify(key) # 转换十六进制字符串到字节串
backend = default_backend()
cipher = Cipher(algorithms.DES(key), modes.ECB(), backend=backend)
encryptor = cipher.encryptor() # 创建加密器
ciphertext = encryptor.update(plaintext.encode()) + encryptor.finalize() # 加密明文
return binascii.hexlify(ciphertext).decode() # 返回十六进制形式的密文
def des_decrypt(ciphertext, key):
key = binascii.unhexlify(key)
backend = default_backend()
cipher = Cipher(algorithms.DES(key), modes.ECB(), backend=backend)
decryptor = cipher.decryptor()
plaintext = decryptor.update(binascii.unhexlify(ciphertext)) + decryptor.finalize() # 解密密文
return plaintext.decode()
# 示例
key = 'your_des_key_128_chars'
plaintext = 'Hello, DES!'
encrypted_text = des_encrypt(plaintext, key)
decrypted_text = des_decrypt(encrypted_text, key)
print(f"原始文本: {plaintext}")
print(f"加密后的文本 (HEX): {encrypted_text}")
print(f"解密后的文本: {decrypted_text}")
```
注意:实际使用时,DES由于安全性较低(它的密钥长度只有56位),现在一般推荐使用更安全的加密算法,如AES。
阅读全文