sm4加解密算法python
时间: 2024-07-03 15:00:39 浏览: 141
SM4(Secure Mobile Cryptography)是一种对称加密算法,主要用于移动设备和网络通信中的数据加密。它由华为公司设计,替代了之前在某些场景中使用的DES和3DES等算法。在Python中,你可以使用第三方库如`pycryptodome`来实现SM4的加解密操作。
以下是一个简单的SM4加解密步骤的示例:
```python
from Crypto.Cipher import SM4
# 加密
def sm4_encrypt(key, plaintext):
cipher = SM4.SM4.new(key)
ciphertext = cipher.encrypt(plaintext.encode('utf-8'))
return ciphertext.hex()
# 解密
def sm4_decrypt(key, ciphertext):
cipher = SM4.SM4.new(key)
plaintext = cipher.decrypt(bytes.fromhex(ciphertext)).decode('utf-8')
return plaintext
# 使用示例
key = b'sixteen_byte_long_key' # SM4 key必须是16字节
plaintext = 'This is a secret message'
ciphertext = sm4_encrypt(key, plaintext)
decrypted_text = sm4_decrypt(key, ciphertext)
print(f"Plaintext: {plaintext}")
print(f"Ciphertext: {ciphertext}")
print(f"Decrypted: {decrypted_text}")
```
阅读全文