首頁 >後端開發 >C#.Net教程 >ASP.NET資料庫密碼:MD5加密演算法詳解

ASP.NET資料庫密碼:MD5加密演算法詳解

Hello World!
Hello World!原創
2020-04-28 17:27:032802瀏覽

在做軟體開發的過程中,必然會牽涉到使用者密碼等關鍵資訊的儲存。在大多數的情況下,使用者的密碼是儲存在資料庫中的。如果不加任何保密措施,直接以明文形式保存的話,很容易造成用戶個人資訊的洩露,給企業和用戶帶來無法預估的損失。

目前,常用的密碼加密儲存演算法有很多種,例如:MD53DESAESSHA1等。

今天我們主要來介紹MD5加密演算法。

ASP.NET資料庫密碼:MD5加密演算法詳解

什麼是MD5演算法

#MD5是一種用於產生數位簽章的單項雜湊演算法,它以512位分組來處理輸入的訊息,且每一分組又被分割為16個32位元子分組,經過一系列處理,演算法的輸出由4個32位元分組級聯後產生一個128位元雜湊值。

使用ASP.NET把密碼欄位值加密,程式碼如下:

using System.Security.Cryptograhoy;//引入MD5加密命名空间
public string GetMD5(string strPwd)
{
    //将要加密的字符串加上前缀与后缀后再加密
    string cl = DateTime.Now.Month + strPwd + DateTime.Now.Day;
    string pwd = "";
    //实例化一个MD5对象
    MD5 md5 = MD5.Create();
    //加密后是一个字节类型的数组,要注意编码UTF8/Unicode等的选择
    byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
    //翻转生成的MD5码
    s.Reverse();
    //通过循环,将字节类型的数组转换为字符串
    //只取MD5码的一部分,这样恶意访问者无法知道取的是哪几位
    for(int i = 3;i < s.Length-1; i++)
    {
        //将得到的字符串使用十六进制类型格式化。格式化后的字符是小写的字母,如果使用大写(X),则格式化后的字符是大写字母
        //进一步对生成的MD5码做一些改造
        pwd = pwd + (s[i] < 198 ? s[i] + 28 : s[i]).ToString("X");
    }
    return pwd;
}

注意

如果單純使用MD5演算法產生的雜湊值,是可以被破解的。所以我們在實際開發過程中,需要使用MD5演算法,結合加鹽演算法來產生無法破解的加密字串。

以上是ASP.NET資料庫密碼:MD5加密演算法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn