2011-01-28 14 views
1

ファイルにSHA256ハッシュを生成する関数を作成しています。 は、ここで私は .Net SHA256Managedは無効なハッシュを生成します

public string ComputeHash(Byte[] inputBytes) 
    { 
     Byte[] hashedBytes = new SHA256Managed().ComputeHash(inputBytes); 
     return BitConverter.ToString(hashedBytes); 
    } 

非常にシンプルな

を使用するコードです。実際には、私が試したツールの2つによれば、生成されたハッシングは有効ではないようですが、実際に見た他のsha256文字列とは異なります(256バイトでもありません)。私は常に小文字rappresentationを見ながら、すべてが、大文字で、CHAR - 1つの結果は、例えば、私はすべてのアウトトリム場合でも

12-10-B2-60-24-75-11-95-B5-F7-F6-64-39-C3-22-9F-E7-E7-D4-13-69-18-99-C5-A7-C5-EC-2F-E2-D6-09-19 

です。 (それも問題です)私は正しい方法でライブラリを使用しているのだろうかと思います。 は

+0

「return string.Concat(hashedBytes.Select(x = > x.ToString( "x2")));代わりに。 – LukeH

答えて

5

SHA-256は、あなたが見ているものです別名256 ビット、32 バイト意味助けてください。

小文字と大文字はここでは無関係です。これは文字列としてのバイトの単なる表現です。バイト間にハイフンがあるかどうかを確認します。異なるツールでは異なる16進文字列表現が生成されるため、「1210B2」は「12-10-b2」などと同等になると思います。

+0

BitConverter.ToStringメソッドを使用する代わりに、文字列表現を取得するより良い方法があると思いますか? – themarcuz

+0

@themarcuz:それはあなたが達成しようとしていることに完全に依存します。出力を調べるのは簡単で、バイトはそれらの間のダッシュによって識別が容易ですという点では問題ありません。 –

関連する問題