2
String inputPass = textBox2.Text;
byte[] inputBytes = System.Text.Encoding.UTF8.GetBytes(inputPass);
byte[] inputHashedBytes = Sha256.ComputeHash(inputBytes);
String inputHash = Convert.ToBase64String(inputHashedBytes);

奇妙な出力があります:

Q9nXCEhAn7RkIOVgBbBeOd5LiH7FWFtDFJ22TMLSoH8 =

出力ハッシュは次のようになります。

43d9d70828409fb46420e56005b05e38de4b887ec5585b43149db64cc2d2a07f

4

2 に答える 2

7

Encoding.UTF8.GetStringバイトをUTF8コードポイントとして解析します。

SHA256ハッシュは任意の256ビット数であり、Unicodeテキストには対応していません。

を呼び出して、バイナリ値を16進数で表示することをお勧めしますBitConverter.ToString()
に電話することもできますConvert.ToBase64String()

于 2012-07-13T19:29:07.963 に答える
7
// 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();
于 2012-07-13T19:39:14.983 に答える