倾听@西妮 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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵