将int从c#gethashcode()转换回字符串?

Wen*_*SHE 2 c# hashcode

一个非常简单的问题:

我做的很简单.我很少string喜欢:

 string A = "usd";
Run Code Online (Sandbox Code Playgroud)

我想在C#中获取哈希码:

 int audusdReqId = Convert.ToInt32("usd".GetHashCode());
Run Code Online (Sandbox Code Playgroud)

现在我怎么能将32位整数转换audusdReqIdstring"usd"?

vcs*_*nes 16

你不能.哈希码不包含将其转换回字符串的所有必要信息.更重要的是,你应该小心你的用途GetHashCode.本文解释了您应该使用它的内容.你甚至不能保证GetHashCode在不同的环境中会返回相同的东西.所以你应该GetHashCode用于任何加密目的.

如果您尝试创建字符串的二进制表示,则可以使用

var bytes = System.Text.Encoding.UTF8.GetBytes(someString);
Run Code Online (Sandbox Code Playgroud)

这将为您byte[]提供特定字符串.您可以使用GetString编码将其转换回字符串:

var originalString = System.Text.Encoding.UTF8.GetString(bytes);
Run Code Online (Sandbox Code Playgroud)

如果您正在尝试以加密方式保护字符串,您可以使用AES之类的对称加密算法,正如Robert Harvey在评论中指出的那样.

  • 正确,这不是双向转换.你必须使用像对称加密这样的东西. (2认同)