具有DECRYPT_MODE的RSA / ECB / PKCS1填充

Prem Nair

我正在尝试使用公共密钥解密字符串以与哈希进行比较。该代码是followig

byte[] dectyptedText = null;
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.DECRYPT_MODE, key);
dectyptedText = cipher.doFinal(text);
return dectyptedText;

上面的代码生成这样的字符串(base64encode)

MCEwCQYFKw4DAhoFAAQUy3qkZYgfRVo2Sv1F9bHa3pDs044 =

哈希由以下代码生成

 byte[] key = stringToHash.getBytes();
 MessageDigest md = MessageDigest.getInstance("SHA-1");
 hash = md.digest(key);

上面的代码生成一个示例哈希,如下所示

y3qkZYgfRVo2Sv1F9bHa3pDs044 =

如果您发现两者都具有正确的哈希值y3qkZYgfRVo2Sv1F9bHa3pDs044 =但解密代码会生成并附加一个额外的MCEwCQYFKw4DAhoFAAQU

不明白这多余的东西是如何添加的以及为什么。

可以请别人对此有所启发吗?

谢谢

前级

马丁·波德威斯

您不应该Cipher用来创建或验证签名。相反,您应该使用Signature.getInstance("SHA1withRSA")

签名方案和加密方案是不同的,它们不一定彼此兼容。首先,他们使用不同的填充方法,这些填充方法是算法安全性的一部分。

即使您可以使用Cipher进行签名验证工作,也有可能尚未完全验证签名,并且如果Cipher正在实施的其他实现,自制的签名验证方案可能(并且可能会)失败。用过的。

问题中的代码似乎使用PKCS#1 v1.5填充来加密而不是使用签名生成,因此它可能是不正确的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有DECRYPT_MODE的RSA / ECB / PKCS1填充

来自分类Dev

使用模量和指数的C#中的RSA / ECB / PKCS1填充解密

来自分类Dev

如何在Java中使用给定的公钥以rsa / ecb / pkcs1填充模式对文本进行编码?

来自分类Dev

错误的填充例外-pkcs11中的RSA / ECB / OAEPWITHSHA-256ANDMGF1PADDING

来自分类Dev

错误的填充例外-pkcs11中的RSA / ECB / OAEPWITHSHA-256ANDMGF1PADDING

来自分类Dev

iOS上的RSA加密(RSA / ECB / PKCS1Padding)

来自分类Dev

NET的Java RSA / ECB / PKCS1Padding加密

来自分类Dev

NET的Java RSA / ECB / PKCS1Padding加密

来自分类Dev

PHP 7.2 中的 RSA/ECB/PKCS1Padding 解密

来自分类Dev

.NET等效于Java KeyFactory.getInstance“ RSA” /“ RSA / ECB / PKCS1Padding”

来自分类Dev

使用PKCS1生成私钥RSA

来自分类Dev

如何从X509转换为PKCS1编码的RSA密钥

来自分类Dev

JPK-CryptoAPI RSA 256 / ECB / PKCS#1一次秘密密码加密,使用证书中的公钥(解决方案)

来自分类Dev

与充气城堡签约时的 Pkcs1 填充

来自分类Dev

RSA / ECB / OAEPWithSHA-256AndMGF1Padding但使用SHA-256的MGF1吗?

来自分类Dev

C#等效于Java RSA / ECB / OAEPWithSHA-256AndMGF1Padding

来自分类Dev

获取此“ RSA / ECB / OAEPWithSHA-256AndMGF1Padding”组合用于红宝石

来自分类Dev

C#Bouncy Castle中的RSA / ECB / OAEPWITHSHA-256ANDMGF1PADDING-输入太大,无法使用RSA密码

来自分类Dev

用Java加密/解密“ AES / ECB / PKCS5Padding”

来自分类Dev

用Java加密/解密“ AES / ECB / PKCS5Padding”

来自分类Dev

使用 AES/ECB/NoPadding 与 PKCS5Padding 进行加密

来自分类Dev

不应使用具有ECB模式的密码

来自分类Dev

从签名的PDF中提取PKCS1

来自分类Dev

您如何解析PKCS1?

来自分类Dev

Python密码术:无法使用PKCS1v15填充使用RSA私钥签名

来自分类Dev

无法复制从Java到PHP中使用AES / ECB / PKCS5Padding加密方法

来自分类Dev

C和Java中的输出AES / ECB / PKCS7不相同

来自分类Dev

Android AES / ECB / PKCS7PADDING生成密钥弹力城堡

来自分类Dev

使用 PHP OpenSSL 将 Java AES/ECB/PKCS7Padding/ 代码转换为 PHP

Related 相关文章

  1. 1

    具有DECRYPT_MODE的RSA / ECB / PKCS1填充

  2. 2

    使用模量和指数的C#中的RSA / ECB / PKCS1填充解密

  3. 3

    如何在Java中使用给定的公钥以rsa / ecb / pkcs1填充模式对文本进行编码?

  4. 4

    错误的填充例外-pkcs11中的RSA / ECB / OAEPWITHSHA-256ANDMGF1PADDING

  5. 5

    错误的填充例外-pkcs11中的RSA / ECB / OAEPWITHSHA-256ANDMGF1PADDING

  6. 6

    iOS上的RSA加密(RSA / ECB / PKCS1Padding)

  7. 7

    NET的Java RSA / ECB / PKCS1Padding加密

  8. 8

    NET的Java RSA / ECB / PKCS1Padding加密

  9. 9

    PHP 7.2 中的 RSA/ECB/PKCS1Padding 解密

  10. 10

    .NET等效于Java KeyFactory.getInstance“ RSA” /“ RSA / ECB / PKCS1Padding”

  11. 11

    使用PKCS1生成私钥RSA

  12. 12

    如何从X509转换为PKCS1编码的RSA密钥

  13. 13

    JPK-CryptoAPI RSA 256 / ECB / PKCS#1一次秘密密码加密,使用证书中的公钥(解决方案)

  14. 14

    与充气城堡签约时的 Pkcs1 填充

  15. 15

    RSA / ECB / OAEPWithSHA-256AndMGF1Padding但使用SHA-256的MGF1吗?

  16. 16

    C#等效于Java RSA / ECB / OAEPWithSHA-256AndMGF1Padding

  17. 17

    获取此“ RSA / ECB / OAEPWithSHA-256AndMGF1Padding”组合用于红宝石

  18. 18

    C#Bouncy Castle中的RSA / ECB / OAEPWITHSHA-256ANDMGF1PADDING-输入太大,无法使用RSA密码

  19. 19

    用Java加密/解密“ AES / ECB / PKCS5Padding”

  20. 20

    用Java加密/解密“ AES / ECB / PKCS5Padding”

  21. 21

    使用 AES/ECB/NoPadding 与 PKCS5Padding 进行加密

  22. 22

    不应使用具有ECB模式的密码

  23. 23

    从签名的PDF中提取PKCS1

  24. 24

    您如何解析PKCS1?

  25. 25

    Python密码术:无法使用PKCS1v15填充使用RSA私钥签名

  26. 26

    无法复制从Java到PHP中使用AES / ECB / PKCS5Padding加密方法

  27. 27

    C和Java中的输出AES / ECB / PKCS7不相同

  28. 28

    Android AES / ECB / PKCS7PADDING生成密钥弹力城堡

  29. 29

    使用 PHP OpenSSL 将 Java AES/ECB/PKCS7Padding/ 代码转换为 PHP

热门标签

归档