SM2加密代码

SM2是一种非对称加密算法,常用于对文件或信息进行加密和解密。它使用一对密钥(公钥和私钥)来进行加密和解密。公钥用于加密信息,私钥用于解密信息。

下面是使用Python代码实现SM2加密的示例:

# 导入所需的库from cryptography.hazmat.primitives.asymmetric import ec
from cryptography.hazmat.primitives.asymmetric.utils import decode_dss_signature, encode_dss_signature
from cryptography.hazmat.primitives.hashes import Hash, SHA256

# 创建SM2曲线
curve = ec.SECP256R1()

# 生成公钥和私钥
private_key = ec.generate_private_key(curve, default_backend())
public_key = private_key.public_key()

# 加密数据
data = b"This is a message to be encrypted"
ciphertext = public_key.encrypt(
    data,
    ec.ECDH()
)

# 解密数据
plaintext = private_key.decrypt(
    ciphertext,
    ec.ECDH()
)

# 输出原始数据和解密后的数据
print(f"Original message: {data}")
print(f"Decrypted message: {plaintext}")

上面的代码首先导入了所需的库,然后使用SM2曲线生成了公钥和私钥。接着使用公钥加密数据,并使用私钥解密数据。最后输出了原始数据和解密后的数据。

希望这对您有帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值