如何从gethashcode生成的int中获取原始字符串

Lea*_*ner 3 c# gethashcode

我已经生成了一个哈希码

string textBoxVal="Naresh";
int code =textBoxVal.GetHashCode();
textBox2.Text=code.ToString();
Run Code Online (Sandbox Code Playgroud)

它生成了一个整数值-1078339947;

现在我想用这个(-1078339947)哈希码获得原始名称Naresh.我怎样才能做到这一点.

Dan*_*zey 5

出于所有实际目的,您不能:哈希代码少于字符串,因此有多个原始值可以提供相同的哈希代码.

实际上,哈希是一种单向操作.如果有人引用可逆散列,则这不是真正的散列(因为根据定义,散列将输入集减少为较少数量的输出值之一).与您描述的操作最接近的操作可能是加密功能 - 这将允许您反转操作 - 但这不太可能产生与您的问题中的10位输出一样小的数字.

  • `int`有2 ^ 32个可能的值.超过4个unicode字符的字符串有超过2 ^ 32个可能的字符.因此,甚至不可能将5个字符的字符串转换为唯一的字符串,更不用说更长的字符串了. (2认同)
  • 您是否有理由不能简单地使用自动递增的数字? (2认同)