5

我有以下代码。

String plaintext = "HelloWorld";
MessageDigest m = MessageDigest.getInstance("MD5");
m.reset();
m.update(plaintext.getBytes());
byte[] digest = m.digest();
BigInteger bigInt = new BigInteger(1,digest);
String hashtext = bigInt.toString(16); 

// Now we need to zero pad it if you actually want the full 32 chars.
while(hashtext.length() < 32 ){
    hashtext = "0"+hashtext;            
}

现在我想将它转换回原始字符串。可能吗?

4

1 回答 1

15

我试过这个。现在我想将它转换回原始字符串。

这对于 MD5 是不可能的。它是一种单向哈希函数

为了能够加密和解密,您需要使用像 AES 这样的加密/解密算法。

有关更多信息,请参阅Java™ 密码体系结构 (JCA) 参考指南

于 2013-03-20T10:53:54.360 回答