Java从哈希码重新创建字符串

Ric*_*III 7 java string hashcode construct

有没有什么办法可以在java中使用字符串的哈希码,并重新创建该字符串?

例如:

String myNewstring = StringUtils.createFromHashCode("Hello World".hashCode());
if (!myNewstring.equals("Hello World"))
    System.out.println("Hmm, something went wrong: " + myNewstring);
Run Code Online (Sandbox Code Playgroud)

我这样说,因为我必须将字符串转换为整数值,并从该整数值重构该字符串.

Ted*_*opp 5

这是不可能的.String的哈希码是有损的; 许多String值将导致相同的哈希码.整数具有32位位置,每个位置具有两个值.甚至没有办法将32个字符的字符串(例如)(每个字符都有很多可能性)映射到32位而没有冲突.他们只是不适合.

如果你想使用任意精度算术(比如BigInteger),那么你可以将每个字符作为一个整数并将它们连接在一起.瞧.

  • 我无法相信这种使用加密的想法是多么无意义.人们怎么能从一个限制为32位的密文恢复一个可能无限长的消息呢? (3认同)