![]() |
1
24
标记之间的数据是包含pkcs 1 rsapublickey的pkcs 8 publicKeyInfo的asn.1 der编码的base64编码。 这是许多标准,您最好使用加密库对其进行解码(如m2crypto-as suggested by joeforker )将以下内容视为有关格式的一些有趣信息: 如果你想,你可以这样解码: base64解码字符串:
这是以下各项的DER编码:
对于1024位RSA密钥,您可以
您可以使用这两个值作为
|
![]() |
2
28
使用 M2Crypto . 以下是如何验证RSA和OpenSSL支持的任何其他算法:
|
![]() |
3
2
公钥包含一个模数(非常长的数字,可以是1024bit、2058bit、4096bit)和一个公钥指数(非常小的数字,通常等于一个大于二的幂)。您需要先了解如何将该公钥拆分为两个组件,然后才能对其执行任何操作。
我对pycrypto不太了解,但要验证签名,请使用字符串的散列值。现在我们必须解密签名。读起来
modular exponentiation
;解密签名的公式是
|
![]() |
4
1
Rasmus
在评论中指出
|
![]() |
5
1
关于der解码的更多信息。 DER编码始终遵循TLV三元组格式:(标记、长度、值)
标记主要告诉如何解释值字段中的字节数据。ans.1有一个类型系统,例如,0x02表示整数,0x30表示序列(一个或多个其他类型实例的有序集合) 长度表示有一个特殊的逻辑:
例如,假设我要编码256字节长的数字,那么它应该是这样的
现在看看你的例子
这就解释了拉姆斯·费伯在回答中所说的话。 |
![]() |
6
0
也许这不是你要找的答案,但是如果你只需要把密钥转换成比特,它看起来像是base64编码的。看看
|
![]() |
7
0
使用M2Crypto,上述答案不起作用。下面是一个经过测试的例子。
这就是问题所在 |
![]() |
8
-1
我尝试了JoeForker给出的代码,但它不起作用。 这是我的示例代码,它工作得很好。
|
![]() |
YungOne · 如何将RSA私钥转换为pem 3 年前 |
![]() |
Teodor Vecerdi · 仅使用n e和c的RSA解密 7 年前 |
![]() |
Questioner · JAVA中的签名验证与签名长度 7 年前 |
![]() |
Aravind S · 如何在Java中验证公钥和私钥对 7 年前 |
|
psy21d · RSA私钥加密QT C++[关闭] 7 年前 |
![]() |
jakzr · R中的RSA密钥和PKI包存储在哪里? 7 年前 |