使用MD5+SHA1混合進行加鹽加密


首先,我們來看一下原始的密碼,這里我們簡單點,使用了123456作為測試用的密碼,但是真實生活中,最好不要把密碼設為123456.

string password = "123456";

OK,那么現在我們來創建加密對象

MD5 md5 = MD5.Create();//創建MD5加密對象
SHA1 sha1 = SHA1.Create();//創建SHA1加密對象

然后我們需要開始進行密碼加密了

byte[] data = Encoding.Default.GetBytes("D" + password + "R");//以D和R做鹽,進行加鹽加密,這樣就算你的原始密碼泄露,加密后的密碼也無法被破解
byte[] data_md5 = md5.ComputeHash(data);//先進行MD5加密
byte[] data_md5_sha1 = sha1.ComputeHash(data_md5);//再進行SHA1二次加密

這里我們使用了D和R作為"鹽",分別放在字符串前面和后面,這樣可以保證明文密碼被破解了還是無法獲得我們加密后的密碼,更加保證了安全性.

然后我們需要使用StringBuilder獲得我們加密后的密碼:

StringBuilder builder = new StringBuilder();
foreach (var item in data_md5_sha1)
{
    builder.Append(item.ToString("x2"));//再把加密后的密碼轉換為16進制,防止暴力破解
}

string password_with_encrypted = builder.ToString();//得到加密后的新密碼

在這期間我們還把每個字符轉換為了16進制,這是為了防止暴力破解.

用完之后,我們最好清空加密對象

md5.Clear();
sha1.Clear();

輸出看結果:

Console.WriteLine("The password with encrypted is :" + password_with_encrypted);
The password with encrypted is :fa5c941309545bdb150bcd78db45395a0403edc4


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM