问题描述

在使用 Python 访问由 Java 写的服务器的时候,服务器返回的资源是通过 RSA 加密的,我有 Java 中生成的 RSA 私钥字符串。但是在解密的时候,出现问题。

后面了解到(看了Java 代码)Java 中使用的是 PKCS#8 生成的私钥,而 Python 中只有 PKCS#1,就导致无法解密。

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCF7hfCivkkln8OC2H3x2Imn/ynFj04ospoiwHAGD4

部分省略

问题出现的环境背景及自己尝试过哪些方法

后面通过上网查询,我把 Java 的 PKCS#8 转换成 PKCS#1,但是在 Python (rsa 库)中还是不行,代码见下面

相关代码

import rsa

import base64

response = {

"encryptkey": "LwHgWbrcpRxDmutLqV+eKjUFV4DBXZZbD8hSQxCZ7ZG33lhs/s7otKOu3ohREYzBTIV6jNMIfA6S/M2+ZwvwxgOU591bmJQywGlfueGbtEUW1KSe3C2l0X8H7d2KXL5s4fESWy8LBbkBUcbtIm1sRLFiHqFGRe2mmBtnI51sBHU="

}

# Java 生成的

pck8_str = '''

-----BEGIN PRIVATE KEY-----

MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAIpB2tBWTUFVJbsb

eeuL2lt+S5zht5fsZRtxGVU15LwF9uhrZVZYtKkYaRtuN4XPPn7d0r03Z4w4cGE0

qtaV/vVIwWh7cmf5JRls6useBZpxaKoGLfT2rzf1k2A2qcT+T5qM39KfPPeYfJY/

unMpv2vKAQK6LldmGXiS9TCRa2e/AgMBAAECgYAoC2b7TOPXdngVN6IajUlTksMH

z4DDqh6m0h1KRu/XXcrkCqcxWUQKbh2Talr+kMZDLLCrSW7eeEJkhUKuIIfVyW+0

H14nahTtLeVe5hwQ9mqpG828rKso7rCEhErtTFw9tnmEy6v8X3a6w3JfmHWQ2SBh

部分省略

-----END PRIVATE KEY-----

'''

# 自己转换的

pck1_str = '''

-----BEGIN RSA PRIVATE KEY-----

MIICWwIBAAKBgQCKQdrQVk1BVSW7G3nri9pbfkuc4beX7GUbcRlVNeS8Bfboa2VW

WLSpGGkbbjeFzz5+3dK9N2eMOHBhNKrWlf71SMFoe3Jn+SUZbOrrHgWacWiqBi30

9q839ZNgNqnE/k+ajN/Snzz3mHyWP7pzKb9rygECui5XZhl4kvUwkWtnvwIDAQAB

AoGAKAtm+0zj13Z4FTeiGo1JU5LDB8+Aw6oeptIdSkbv113K5AqnMVlECm4dk2pa

/pDGQyywq0lu3nhCZIVCriCH1clvtB9eJ2oU7S3lXuYcEPZqqRvNvKyrKO6whIRK

7UxcPbZ5hMur/F92usNyX5h1kNkgYRSxGctFDOZkui+wpQECQQDaBHOvV2cJdTTW

部分省略

-----END RSA PRIVATE KEY-----

'''

encryptkey = response.get('encryptkey').encode('utf-8')

private_key = rsa.PrivateKey.load_pkcs1(pck1_str.encode())

data = rsa.decrypt(encryptkey, private_key)

实际看到的错误信息

Traceback (most recent call last):

File "F:/response.py", line 68, in

data = rsa.decrypt(encryptkey, private_key)

File "D:\Program Files\Python3\lib\site-packages\rsa\pkcs1.py", line 238, in decrypt

raise DecryptionError('Decryption failed')

rsa.pkcs1.DecryptionError: Decryption failed

java pkcs_在 Python 3 (PKCS#1)中,如何正确使用来自 Java (PKCS#8) 的 RSA 私钥,进行数据解密?...相关推荐

  1. java none怎么用tomcat_在docker中部署tomcat并且部署java应用程序的步骤详解

    先给大家简单说下Docker的概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是 ...

  2. 关于python赋值语句下列选项中描述正确的是_关于 Python 语句 P = –P,以下选项中描述正确的是________...

    [单选题]以下选项中,哪一个是Python语言中代码注释使用的符号?________ [简答题]身份认同是对自身的认知,当你对"我是谁"有个清晰的概念时,你就能对将来想要的生活有个 ...

  3. java获取chanel的ip_Netty:在消息中获取远程IP地址 - java

    在我的类中(扩展SimpleChannelHandler),我尝试获取最初发送消息的IP. @Override public void messageReceived(ChannelHandlerCo ...

  4. 关于python赋值语句下列选项中描述正确的是_关于Python的分支结构,以下选项中描述正确的是()。...

    38.并集选择器是各个选择器通过逗号连接而成的,关于构任何形式的选择器都可以作为并集选择器的一部分.() 若变量a.支结中描b.t已经正确定义,要将a和b中的数据进行交换,以下选项中不正确的是 若有以 ...

  5. java soap附件_java - 附件在SoapUI中工作,但在Java中不能使用SAAJ API吗? - 堆栈内存溢出...

    我能够使用SoapUI附加一个完全相同的SOAP Request的zip文件,但不能使用SAAJ Api的Java. 这是我在SOAPUI和JAVA中使用的SOAP请求: projectName ci ...

  6. java 防止js注入_在WebView中如何让JS与Java安全地互相调用

    在现在安卓应用原生开发中,为了追求开发的效率以及移植的便利性,使用WebView作为业务内容展示与交互的主要载体是个不错的折中方案.那么在 这种Hybrid(混合式) App中,难免就会遇到页面JS需 ...

  7. java输出带圆圈数字_AcWing 82. 圆圈中最后剩下的数字--Java代码

    算法1 (环形链表) $O(n)$ 经典的解法, 用环形链表模拟圆圈. 创建一个总共有 n 个结点的环形链表,然后每次在这个链表中删除第 m 个结点. Java 代码 class Solution { ...

  8. java 类加载 apk_在Android的App中动态的加载Java类

    原文的地址:http://yenliangl.blogspot.com/2009/11/dynamic-loading-of-classes-in-your.html 我正在编写一个应用程序能够加载别 ...

  9. java monitor 用法_[作业解析]并发中的Monitor及在Java中的运用如notify(),synchronized等用法...

    作业题目: 给定一个如下Java类Konto(即银行帐号),能实现存钱einzahlen和取钱auszahlen的功能. /* Eine Klasse für Bankkonten, die noch ...

最新文章

  1. 贪心:assign cookies分糖果
  2. intellij idea建立maven项目
  3. 排序算法(Java实现)
  4. CEDEC 2021 | 让巨大化角色充满真实感的五大法则
  5. 信息学奥赛C++语言:有规律的数列
  6. python和ui设计,PySide2相当于PyQt5的loadUiType(),用于在UI设计中动态混合
  7. java和php基础部分相同或异同
  8. 计算机公式sin,三角函数换算(新版中文三角函数计算器)
  9. 服务器怎么在线播放flv视频,服务器无法播放flv文件
  10. 转载至:http://blog.csdn.net/antony9118/article/details/51425581
  11. 【洛谷】P1138 第k小整数
  12. 高质量作品集封面合集(含封面素材、字体包和作品集封面原始文档)
  13. 【观察】从社恐症到社牛症,有一台微软Surface就够了
  14. 数字通信中为什么需要时钟线
  15. 清华大学教授张长水:基于小样本学习的计算机视觉应用
  16. flex-warp换行后之间的间隔调整
  17. grpc+gateway使用说明
  18. 【SQL实战经验一】:SQL语句中存在英文的单引号、双引号问题
  19. 如何用PHP调用学小易题库,如何使用 PHP 输出 hello world?()
  20. centos7防火墙端口设置

热门文章

  1. 【游戏设计】从星露谷物语中学习游戏制作
  2. aix oracle备份命令,Aix/Linux下自动备份oracle数据库
  3. Windows10登录不上Micrsoft账户,解决办法
  4. 驻极体MIC并联与串联
  5. 陈景润把一本书读了20多遍,他的读书方法很特别
  6. UEFI-PciHostBridge
  7. 双十一阿里云优惠活动整理
  8. 《痞子衡嵌入式半月刊》 第 58 期
  9. 为了快 0.00007 秒,有家交易公司花 1400 万美元买了块地
  10. boot Strap笔记(哈哈哈哈)