我需要2个方法:一个将我的字符串值转换为散列值,使用md5会很好,另一个将散列字符串恢复为原始字符串。这可能吗?
答案 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