とC#で作成されたハッシュ私はハッシュを生成するために使用する方法があります。マッチSQL
public static string GetMD5Hash(string input)
{
System.Security.Cryptography.MD5CryptoServiceProvider x = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] bs = System.Text.Encoding.UTF8.GetBytes(input);
bs = x.ComputeHash(bs);
System.Text.StringBuilder s = new System.Text.StringBuilder();
foreach (byte b in bs)
{
s.Append(b.ToString("x2").ToLower());
}
return s.ToString();
}
私は、VARCHAR(255)の列にそのハッシュを保存します。 sql(2005)を使用して、varchar(255)列に格納されている同じハッシュ値に到達することは可能でしょうか?
私はさまざまなデータ型、コンバージョン、およびhashbytes()関数を使って狂ったようにしようとしましたが、近づくことはできませんでした。私の失敗した:(
select convert(varchar, hashbytes('MD5', convert(varbinary(200), '<censored>',0)))
MD5は使用しないでください。それは不安です。 – SLaks
なぜ 'varchar(255)'ですか? 'MD5CryptoServiceProvider'は' ComputeHash() 'から16バイトの配列を返しますので、char(32)を使用してください(0x16として保存した場合) – BrokenGlass
これはToLower()のためでしょうか? – Greenisha