(计算机安全学)用Python实现RSA算法的加密、解密、签名/验证签名

import rsa

# 生成密钥
(pubkey, privkey) = rsa.newkeys(1024)

# 保存密钥
with open('public.pem','w+') as f:
    f.write(pubkey.save_pkcs1().decode())
with open('private.pem','w+') as f:
    f.write(privkey.save_pkcs1().decode())

# 导入密钥
with open('public.pem','r') as f:
    pubkey = rsa.PublicKey.load_pkcs1(f.read().encode())
with open('private.pem','r') as f:
    privkey = rsa.PrivateKey.load_pkcs1(f.read().encode())

# 明文
message = '明文1'

# 加密得到密文
crypto_email_text = rsa.encrypt(message.encode(), pubkey)

print(crypto_email_text) 


# 解密,就可得到明文

message = rsa.decrypt(crypto_email_text, privkey).decode()
print(message)


# 明文
message = '明文2'


# 签名
crypto_email_text = rsa.sign(message.encode(), privkey, 'SHA-1')


# 公钥验证
rsa.verify(message.encode(), crypto_email_text, pubkey)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值