如何将字符串转换为散列值并将其还原?

时间:2013-09-20 19:16:02

标签: java hash md5

我需要2个方法:一个将我的字符串值转换为散列值,使用md5会很好,另一个将散列字符串恢复为原始字符串。这可能吗?

1 个答案:

答案 0 :(得分:3)

不可能将哈希值转回原始输入字符串,通过哈希函数的定义,它们不能被反转。此外,可能有无限数量的输入散列到相同的值,虽然在实践中它们非常非常难以找到(它们被称为“碰撞”)。

关于问题的其他部分,使用标准库计算哈希很简单。例如:

byte[] bytesOfMessage = yourString.getBytes("UTF-8"); // pass the right encoding
MessageDigest md = MessageDigest.getInstance("MD5");  // specify the algorithm
byte[] thedigest = md.digest(bytesOfMessage);         // here's the hash