Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python sm4

作者:洃铯哖輪   发布日期:2026-01-30   浏览:34

# SM4加密算法的Python实现示例

from Crypto.Cipher import SM4
from Crypto.Random import get_random_bytes

# 生成一个16字节(128位)的密钥
key = get_random_bytes(16)

# 创建SM4加密对象,使用ECB模式(电子密码本模式)
cipher = SM4.new(key, SM4.MODE_ECB)

# 要加密的数据,长度必须是16的倍数
data = b'HelloWorld1234'

# 加密数据
encrypted_data = cipher.encrypt(data)
print("Encrypted data:", encrypted_data.hex())

# 解密数据
decrypted_data = cipher.decrypt(encrypted_data)
print("Decrypted data:", decrypted_data.decode('utf-8'))

解释说明:

  1. 导入模块:从Crypto.Cipher模块中导入SM4类,并从Crypto.Random模块中导入get_random_bytes函数用于生成随机密钥。
  2. 生成密钥:使用get_random_bytes(16)生成一个16字节的密钥,这是SM4算法所需的密钥长度。
  3. 创建加密对象:使用SM4.new()方法创建一个SM4加密对象,指定密钥和加密模式(这里使用的是ECB模式)。
  4. 加密数据:使用cipher.encrypt()方法对数据进行加密。注意,输入的数据长度必须是16的倍数。
  5. 解密数据:使用cipher.decrypt()方法对加密后的数据进行解密,恢复原始数据。

这个示例展示了如何使用Python中的SM4算法进行基本的加密和解密操作。

上一篇:python获取数组长度

下一篇:python 关键字

大家都在看

python时间格式

pythoneval函数用法

python读取文件路径

staticmethod在python中有

python 保存json文件

python开发windows应用程序

python中len是什么意思

python 私有函数

python ord和chr

python中的yield

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站