sms*_*are 2 c# utf-8 sha winforms
String inputPass = textBox2.Text;
byte[] inputBytes = System.Text.Encoding.UTF8.GetBytes(inputPass);
byte[] inputHashedBytes = Sha256.ComputeHash(inputBytes);
String inputHash = Convert.ToBase64String(inputHashedBytes);
Run Code Online (Sandbox Code Playgroud)
我得到一些奇怪的输出:
Q9nXCEhAn7RkIOVgBbBeOd5LiH7FWFtDFJ22TMLSoH8 =
通过输出哈希看起来像这样:
43d9d70828409fb46420e56005b05e38de4b887ec5585b43149db64cc2d2a07f
Encoding.UTF8.GetString 将字节解析为UTF8代码点.
SHA256散列是任意256位数,并不对应任何Unicode文本.
您可能希望通过调用以十六进制显示二进制值BitConverter.ToString().
你也可以打电话Convert.ToBase64String().
// this is where you get the actual binary hash
byte[] inputHashedBytes = Sha256.ComputeHash(inputBytes);
// but you want it in a string format, similar to a variety of UNIX tools
string result = BitConverter.ToString(inputHashedBytes)
// this will remove all the dashes in between each two characters
.Replace("-", string.Empty)
// and make it lowercase
.ToLower();
Run Code Online (Sandbox Code Playgroud)