我正在尝试使用公钥解密字符串以与哈希进行比较。代码如下
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
不明白这个额外的东西是如何添加的以及为什么。
请有人对此有所了解吗?
谢谢
前置