hash.ComputeHash 関数が C# .Net でどのように機能するか説明してください。
Mac サーバーの bash で .net hasing プログラムの動作をエミュレートしようとしていますが、結果が異なります。
.Net コード:
Byte[] z = System.Text.Encoding.UTF8.GetBytes("1B-F5");
string myhash1 = BitConverter.ToString(hash.ComputeHash(z));
string myhash2 = BitConverter.ToString(hash.ComputeHash(hash.ComputeHash(z)));
戻り値:
myhash1 = "EF-83-00-69-6F-22-7C-1C-9C-84-C3-66-06-06-A5-12-A0-C7-91-B5"
myhash2 = "D3-5C-95-AD-2D-9E-5A-49-D0-D8-2B-4F-A5-F9-9A-6F-02-EA-8C-83"
問題は、bash スクリプトで Second has 値 (二重ハッシュされている) を取得できないことです。
バッシュ:
echo -n "1B-F5" | openssl sha1
ただし、正しい最初のハッシュ値(「-」文字を除く)を提供します
echo -n "1B-F5" | openssl sha1 | openssl sha1
まったく異なるハッシュを提供します。これは、C# コードが文字列ではなくバイト配列をハッシュしているためだと思われます。
とにかくbashで同じ出力を得ることができますか?