rsa - 将解码的 pkcs12 密钥转换为 pem 格式
问题描述
我正在尝试对应用程序进行逆向工程,我发现它使用 RSA/ECB/PKCS1Padding 方法加密了一个字符串
在此之前,它使用名为“1.2.840.113549.1.12.1.3”的方法从另一个字符串加载类似于私钥的内容,我在谷歌上搜索,发现它是一个 PKCS12 密钥
我无权访问代码,我正在使用 frida 读取这些数据,所以我不明白实际在做什么。
我需要做的是能够进行相同的 rsa 加密,所以我需要 rsa 的密钥
我有一个示例输入和输出来尝试测试密钥是否正确。我还有一个十六进制字符串,我猜它来自一个 pfx 文件,另一个从前一个生成的十六进制字符串看起来像一个私钥,另一个较小的十六进制字符串可能是 pfx 的密码(我不确定这个)
经过进一步调查,我发现密钥的类名是:com.android.org.bouncycastle.jcajce.PKCS12Key
这也是第二个十六进制字符串(用 X 替换了其中的一部分),我认为它是一种私钥,但我无法验证它:
3082035f3082035b060b2a864886f70d010c0a0103a082031430820310060a2a864886f70d01091601a0820300048202fc308202f8308201e0a00302010202106fb86aeca71187a94a49a31d57f64795300d06092a864886f70d01010b05003018311630140603550403130d524e4430382e7365702e6e6574301e170d3230303331353038353030325XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX9d4d602c133addaa58422e3af20ee97c8a9936b3134301306092a864886f70d0109153106040401000000301d06092a864886f70d01091431101e0e003700320034004e006500770000
我到现在为止的尝试:
将第一个十六进制字符串转换为二进制并将其保存到文件中,然后使用openssl pkcs12 -in -out
命令获取 pem 格式的文件,但失败并出现错误4630589100:error:0DFFF0A8:asn1 encoding routines:CRYPTO_internal:wrong tag
解决方案
推荐阅读
- c# - 如何在 asp.net core 2.1 身份 ui 中进行自定义路由?
- python - PySide,如何设置 QMessageBox 文本格式?
- jenkins - 无法在 Jenkins 主页中看到登录和注册选项
- jquery - 将点击功能绑定到不同的图片
- python-3.x - python中的match-mapping-group模式是否有函数式编程的解决方案?
- laravel - 在 laravel 上发布/补丁更新
- sql - 测量 SQL 查询中每个操作的时间
- python - SqlAlchemy:插入语句、实际 SQL 和跳过字段
- java - 在 Java Swing 中默认情况下是否可以不打开手风琴?
- python - 无法对 csv 的所有列应用正则表达式