【发布时间】:2013-09-30 17:21:40
【问题描述】:
我正在尝试使用公钥解密字符串以与哈希进行比较。代码如下
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
不明白这个额外的东西是如何添加的以及为什么添加。
请有人对此有所了解吗?
谢谢
前置
【问题讨论】:
标签: encryption hash rsa sha1 pkcs#1