加密算法是md5。如何使用sql server生成類似的哈希密碼?
在C#中,我使用下面的代碼來生成密碼: -
private MD5 _md5;
var plain = ASCIIEncoding.Default.GetBytes('admin');
var hashed = _md5.ComputeHash(plain);
var shashed = ASCIIEncoding.Default.GetString(hashed);
Console.Write(shashed);
結果是:!#/)zW¥§C‰JJ€Ã
當我使用SQL Server的代碼來生成密碼: -
DECLARE @HashThis varchar(100);
SELECT @HashThis = CONVERT(varchar(100),'admin');
SELECT HASHBYTES('MD5', @HashThis);
GO
結果是:0x21232F297A57A5A743894A0E4A801FC3
我正在使用相同的算法。我如何在SQL Server中生成相同的哈希值?
MD5不是安全的,特別是沒有鹽。您應該使用bcrypt或PBKDFv2。 – SLaks
您在SQL中看到的是十六進制表示形式,其中隨着C#代碼將字節值寫入控制檯,您將在字體中獲得這些字節值的表示形式。 將密碼存儲在SQL中是一種常見的做法,並且足夠安全,因爲您希望在登錄期間比較計算得到的來自密碼的哈希值。如果你使用加密,那麼你開放的人可以解密的密碼,作爲一個哈希值必須被蠻力 – Quintium
而MD5是**不**密碼學 - 它是哈希。 –