倾听@西妮 2022-02-09 18:43 采纳率: 60%
浏览 62
已结题

rsa加密解密python实现

两个64位的密文相乘后变成128位的密文,该密文还能别原来的私钥解密吗,在执行自己写的代码后一直解密失败,找不到问题所在了。代码如下:在倒数第六行,解密m4的时候一直解密不成功

-- coding: utf-8 --

import rsa

先生成一对密钥,然后保存.pem格式文件,当然也可以直接使用

(pubkey, privkey) = rsa.newkeys(512)
pub = pubkey.save_pkcs1()
pri = privkey.save_pkcs1()

load公钥和密钥

message = '18.234'.encode('utf-8')
m2='1.3'.encode('utf-8')
pubkey = rsa.PublicKey.load_pkcs1(pub)
privkey = rsa.PrivateKey.load_pkcs1(pri)

用公钥加密、再用私钥解密

```python

crypto = rsa.encrypt(message, pubkey)```
m2 =rsa.encrypt(m2,pubkey)
print(crypto)
print(m2)

```python

crypto = int.from_bytes(crypto, byteorder='little', signed=True)
m2 = int.from_bytes(m2, byteorder='little', signed=True)```
print(crypto)
print(m2)
m3=crypto*m2
print(m3)

```python

crypto = crypto.to_bytes(64, byteorder='little', signed=True)
m2 = m2.to_bytes(64, byteorder='little', signed=True)
m3 = m3.to_bytes(128, byteorder='little', signed=True)
print(crypto)
print(m2)
length=len(m3)
m4=m3[0:64]
m5=m3[64:length]
message = rsa.decrypt(crypto, privkey)
m2 = rsa.decrypt(m2, privkey)
m4 = rsa.decrypt(m4, privkey)
m5 = rsa.decrypt(m5, privkey)
print(message.decode('utf-8'))
print(m2.decode('utf-8'))```
print(m4.decode('utf-8'))
print(m5.decode('utf-8'))

  • 写回答

1条回答 默认 最新

  • 赵东19970820 2022-02-10 09:38
    关注

    你应该注释掉这一样,试试m5能不能解密成功,如果m5也解密错误,那就是截取是不对的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月21日
  • 已采纳回答 2月13日
  • 创建了问题 2月9日

悬赏问题

  • ¥15 vs2022无法联网
  • ¥15 TCP的客户端和服务器的互联
  • ¥15 VB.NET操作免驱摄像头
  • ¥15 笔记本上移动热点开关状态查询
  • ¥85 类鸟群Boids——仿真鸟群避障的相关问题
  • ¥15 CFEDEM自带算例错误,如何解决?
  • ¥15 有没有会使用flac3d软件的家人
  • ¥20 360摄像头无法解绑使用,请教解绑当前账号绑定问题,
  • ¥15 docker实践项目
  • ¥15 利用pthon计算薄膜结构的光导纳