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

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

Apr 28, 2020 pm 05:27 PM
asp.net md5

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

目前,常用的密碼加密儲存演算法有很多種,例如: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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

MySQL中如何使用MD5加密 MySQL中如何使用MD5加密 May 28, 2023 pm 02:16 PM

什麼是MD5? MD5資訊摘要演算法(英文:MD5Message-DigestAgorithm),一種被廣泛使用的密碼雜湊函數,可以產生一個128位元(16位元組)的雜湊值(hashvalue),用來確保資訊傳輸完整一致。 MD5由美國密碼學家羅納德·李維斯特(RonaldLinnRivest))設計,於1992年公開,以取代MD4演算法。這套演算法的程式在RFC1321標準中被加以規範。 1996年後該演算法被證實有弱點,可以被加以破解,對於需要高度安全性的數據,專家一般建議改用其他

PHP計算檔案的 MD5 雜湊 PHP計算檔案的 MD5 雜湊 Mar 21, 2024 pm 01:42 PM

這篇文章將為大家詳細講解有關PHP計算文件的MD5散列,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。 PHP計算檔案的MD5雜湊MD5(MessageDigest5)是一種單向加密演算法,可將任意長度的訊息轉換為固定長度的128位元雜湊值。它廣泛用於確保文件完整性、驗證資料真實性和建立數位簽章。在PHP中計算檔案的MD5雜湊php提供了多種方法來計算檔案的MD5雜湊:使用md5_file()函數md5_file()函數直接計算檔案的MD5雜湊值,傳回一個32個字元的

PHP計算字串的 MD5 雜湊值 PHP計算字串的 MD5 雜湊值 Mar 21, 2024 am 10:51 AM

這篇文章將為大家詳細講解有關PHP計算字串的MD5散列值,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。 PHP中計算字串的MD5雜湊值引言MD5(訊息摘要5)是一種流行的密碼學雜湊函數,用於產生固定長度的雜湊值,常用於保護資料完整性、驗證檔案完整性和建立數位簽章。本文將指南php開發人員如何使用內建函數計算字串的MD5雜湊值。 md5()函數PHP提供了md5()函數來計算字串的MD5雜湊值。此函數接收一個字串參數並傳回一個32個字元長度的16進位雜湊值

linux md5 工具是什麼 linux md5 工具是什麼 Jun 29, 2023 am 10:51 AM

linux md5工具是用於計算和驗證檔案的MD5雜湊值的工具,MD5是一種常用的雜湊演算法,用於產生唯一的、固定長度的雜湊值,通常為128位,在Linux終端機中使用md5sum指令,其語法為「md5sum <檔案路徑>」。

怎麼使用Java計算修改文件的MD5值 怎麼使用Java計算修改文件的MD5值 May 29, 2023 am 08:16 AM

什麼是MD5? MD5(MessageDigestAlgorithm,資訊摘要演算法),一種被廣泛使用的密碼雜湊函數,可以產生一個128位元(16位元組)的雜湊值(hashvalue),用於確保資訊傳輸完整一致。它後面這個數字5是因為它是為了取代MD4而發明的。簡單的理解,它的作用就是給文件一個唯一標識。如果我們修改了一個檔案的副檔名,檔案可能會打不開,但對於MD5來說,並沒有什麼改變。所以對於一個文件,進行任何的重新命名對於md5校驗都是沒有用的。 MD5的應用這裡只提幾點我看過的比較頻繁的應用情況

Java雙重MD5加密怎麼實現安全登入 Java雙重MD5加密怎麼實現安全登入 May 17, 2023 pm 05:31 PM

一:問題引入對儲存在資料庫中的密碼進行解密操作:可以看到成功將我的密碼解密出來,這讓我很吃驚,因為我們都知道MD5演算法是不可逆的,因為它是其是一種散列函數,使用的是hash演算法,在計算過程中原文的部分資訊是遺失了的。那為什麼網站中可以將我的密碼解密出來呢?經過一番查找後發現,原來在線解密工具的解密原理很簡單,其原理是收集用戶常用的簡單密碼形成了一個密碼字典,並將字典中的密碼用MD5加密後存儲起來,在所謂的“解密「的時候,就將真正用戶密碼加密都的密文與已儲存的密碼相比較,如該密文存在於字典當中,

如何使用python實現md5加密 如何使用python實現md5加密 May 13, 2023 pm 08:04 PM

python實作MD5加密1、簡介MessageDigestAlgorithmMD5(中文名為訊息摘要演算法第五版)為電腦安全領域廣泛使用的一種雜湊函數,用於確保資訊傳輸完整一致。 MD5是單向加密,指只能加密資料而無法解密數據,主要解決資料的完整性問題。摘要演算法又稱哈希演算法、雜湊演算法。它通過一個函數,把任意長度的資料轉換為一個長度固定的資料字串(通常用16進制的字串表示)。 MD5是最常見的摘要演算法,速度很快,可以將一個字串,或文件,或壓縮包,執行md5後,產生一個固定長度為128bit的串,通

java檔案合併與修改md5值的問題怎麼解決 java檔案合併與修改md5值的問題怎麼解決 May 10, 2023 pm 09:46 PM

文字檔案合併運作效果:運行前:在這個路徑下面有9個檔案。運行後:產生了一個merge.txt檔案檔案內容展示程式碼部分這部分程式碼,功能很簡單就是把一個個的文字檔案合併後寫入一個總的merge.txt資料夾,當時學會了往文件裡追加內容,所以寫了這個demo。簡單來說就是取得每一個文件(文字文件,我進行了過濾。)得到一個輸入流,然後一個循環內,每次將一個文件的資訊寫入合併的文件內,循環結束,文件合併就完成了。 packagecom.filemerge;importjava.io.BufferedRead

See all articles