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

首先,咱們來看一下原始的密碼,這裏咱們簡單點,使用了123456做爲測試用的密碼,可是真實生活中,最好不要把密碼設爲123456.c#

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做爲"鹽",分別放在字符串前面和後面,這樣能夠保證實文密碼被破解了仍是沒法得到咱們加密後的密碼,更加保證了安全性.ui

而後咱們須要使用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進制,這是爲了防止暴力破解.code

用完以後,咱們最好清空加密對象對象

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

輸出看結果:md5

Console.WriteLine("The password with encrypted is :" + password_with_encrypted);
The password with encrypted is :fa5c941309545bdb150bcd78db45395a0403edc4
相關文章
相關標籤/搜索