2017-10-31 27 views
0

16バイトを切り捨てずにSHA256を使用して文字列をGUIDに変換する方法はありますか?SHA256を切り捨てずに文字列をGuidに変換する

現在、私はこれを持っている:

using SHA256 sha2 = SHA256.Create()) 
{ 
    var hash = sha2.ComputeHash(Encoding.Default.GetBytes(string)); 
    return new Guid(hash.Take(16).ToArray()); 
} 
+0

AのGuid *は16バイト長です。それでは、残りの部分にどのようにフィットしますか? –

+0

SHA-256アルゴリズムは32バイトのハッシュを作成します。 'Guid'は16バイトです。 16バイトのデータ構造に32バイトを入れることはできません。 2つのガイドに変換することができます。 –

+0

なぜですか? 'Guid'は16バイトです。あなたがそれを播種して新しいものを作っているようなものではありません。 'Guid'文字列コンストラクタは、文字通り' Guid'を別の形式で表現し、 'Guid'クラスのインスタンスを作成しています。 – McAden

答えて

1

ハッシュは、GUIDと同じではありません。 2を同じにしようとすると正しくありません。

あなたは一意の識別子たい場合:

return new Guid(); 

あなたに1つを与えるでしょう。

あなたはハッシュをしたい場合は、ストアは、バイトまたは文字列である、ないGuid

+0

ありがとう私はそれが可能かどうかを見たいと思っています –

関連する問題