2

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

4

1 回答 1

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
于 2013-09-20T19:17:43.533 回答