最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#使用MD5算法對(duì)密碼進(jìn)行加密的示例代碼

 更新時(shí)間:2024年03月21日 11:28:06   作者:wenchm  
MD5(Message Digest Algorithm 5)是一種被廣泛使用的“消息-摘要算法”,“消息-摘要算法”實(shí)際上就是一個(gè)單項(xiàng)散列函數(shù),數(shù)據(jù)塊經(jīng)過單向散列函數(shù)得到一個(gè)固定長(zhǎng)度的散列值,本文給大家介紹了C#使用MD5算法對(duì)密碼進(jìn)行加密,需要的朋友可以參考下

一、涉及到的知識(shí)點(diǎn)

1.MD5

MD5(Message Digest Algorithm 5)是一種被廣泛使用的“消息-摘要算法”。“消息-摘要算法”實(shí)際上就是一個(gè)單項(xiàng)散列函數(shù),數(shù)據(jù)塊經(jīng)過單向散列函數(shù)得到一個(gè)固定長(zhǎng)度的散列值,數(shù)據(jù)塊的簽名就是計(jì)算數(shù)據(jù)塊的散列值,MD5算法的散列值為128位。

2.使用基類的 Create 方法來創(chuàng)建 MD5 對(duì)象

應(yīng)該使用其基類的 Create 方法來創(chuàng)建 MD5 對(duì)象。如果還是用MD5CryptoServiceProvider 類,那么將會(huì)得到警告SYSLIB0021。

使用 MD5.Create() 方法來創(chuàng)建 MD5 對(duì)象更加簡(jiǎn)潔易讀。這種方法也適用于其他過時(shí)的加密類,如 SHA1CryptoServiceProvider、SHA256CryptoServiceProvider 等。通過使用基類的 Create() 方法,代碼將更加簡(jiǎn)潔、易讀且符合最佳實(shí)踐。

using System.Security.Cryptography;
 
// ...
 
MD5 md5 = MD5.Create();

3.對(duì)每個(gè)字節(jié)進(jìn)行加密并將其轉(zhuǎn)換為十六進(jìn)制字符串

str += md5data[i].ToString("x").PadLeft(2, '0');//對(duì)遍歷到的字節(jié)進(jìn)行加密

具體來說,這段代碼執(zhí)行以下操作:

  • 使用 for 循環(huán)遍歷字節(jié)數(shù)組 md5data 中的每個(gè)字節(jié)。
  • 將當(dāng)前字節(jié)轉(zhuǎn)換為十六進(jìn)制字符串,使用 “x” 格式說明符表示。例如,字節(jié)值 0x1A 將轉(zhuǎn)換為字符串 “1a”。
  • 使用 PadLeft 方法將轉(zhuǎn)換后的十六進(jìn)制字符串左對(duì)齊,確保其長(zhǎng)度為 2。如果字符串長(zhǎng)度小于 2,將用字符 ‘0’ 在左側(cè)填充。例如,字符串 “1a” 將被轉(zhuǎn)換為 “01a”。
  • 將處理后的十六進(jìn)制字符串追加到字符串變量 str 中。
  • 通過這些操作,原始字節(jié)數(shù)據(jù)將被轉(zhuǎn)換為一個(gè)包含十六進(jìn)制字符的字符串。這是 MD5 加密過程的一部分,最終將生成一個(gè) 32 個(gè)字符的 MD5 哈希值。

4.ComputeHash(Byte[])

計(jì)算指定字節(jié)數(shù)組的哈希值。

public byte[] ComputeHash (byte[] buffer);
 
參數(shù)
buffer    Byte[]
要計(jì)算其哈希代碼的輸入。
 
返回
Byte[]
計(jì)算所得的哈希代碼。
 
例外
ArgumentNullException
buffer 為 null。
 
ObjectDisposedException
對(duì)象已被釋放。

二、使用MD5算法對(duì)密碼進(jìn)行加密

// 使用MD5算法對(duì)密碼進(jìn)行加密
using System.Security.Cryptography;
namespace _155
{
    class Program
    {
        /// <summary>
        /// 對(duì)遍歷到的字節(jié)進(jìn)行加密
        /// </summary>
        /// <param name="strPwd">輸入的待加密的字符串</param>
        /// <returns name="str">返回加密后的值</returns>
        public static string Encrypt(string strPwd)
        {
            MD5 md5 = MD5.Create();
            byte[] data = System.Text.Encoding.Default.GetBytes(strPwd);//將字符編碼為一個(gè)字節(jié)序列
            byte[] md5data = md5.ComputeHash(data);                     //計(jì)算data字節(jié)數(shù)組的哈希值
            md5.Clear();       //清空MD5對(duì)象
            string str = "";   //定義一個(gè)變量,用來記錄加密后的密碼
            for (int i = 0; i < md5data.Length - 1; i++)
            {
                str += md5data[i].ToString("x").PadLeft(2, '0');
            }
            return str;
        }
 
        static void Main(string[] args)
        {
            ArgumentNullException.ThrowIfNull(args);
 
            while (true)
            {
                Console.Write("請(qǐng)輸入密碼:");
                string P_str_Code = Console.ReadLine()!;
                Console.WriteLine("使用MD5加密后的結(jié)果為:" + Encrypt(P_str_Code));
            }
        }
    }
}
//運(yùn)行結(jié)果:
/*
請(qǐng)輸入密碼:123456789Qq
使用MD5加密后的結(jié)果為:6d28b4834bd6a9e384be01c131a8f2
請(qǐng)輸入密碼:123456789QQ
使用MD5加密后的結(jié)果為:46e7640c5b2ddeab142d71d872163b
請(qǐng)輸入密碼:123456789qq
使用MD5加密后的結(jié)果為:9c32d6523556378b8b1632720f7ab1
請(qǐng)輸入密碼:
 */

到此這篇關(guān)于C#使用MD5算法對(duì)密碼進(jìn)行加密的示例代碼的文章就介紹到這了,更多相關(guān)C# MD5算法密碼加密內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#驗(yàn)證用戶輸入信息是否包含危險(xiǎn)字符串的方法

    C#驗(yàn)證用戶輸入信息是否包含危險(xiǎn)字符串的方法

    這篇文章主要介紹了C#驗(yàn)證用戶輸入信息是否包含危險(xiǎn)字符串的方法,可針對(duì)and、or、exec、insert、select等SQL操作技巧進(jìn)行過濾操作,非常具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • C#實(shí)現(xiàn)自定義定時(shí)組件的方法

    C#實(shí)現(xiàn)自定義定時(shí)組件的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)自定義定時(shí)組件的方法,很實(shí)用的功能,需要的朋友可以參考下
    2014-08-08
  • C#實(shí)現(xiàn)高性能檢索文檔的5大核心技巧總結(jié)

    C#實(shí)現(xiàn)高性能檢索文檔的5大核心技巧總結(jié)

    C#如何突破10GB文檔的檢索瓶頸,是優(yōu)化算法,還是升級(jí)硬件,內(nèi)存與磁盤如何平衡,下面小編就為大家簡(jiǎn)單分享5個(gè)C#高性能檢索文檔的核心技巧吧
    2025-10-10
  • C#操作圖片讀取和存儲(chǔ)SQLserver實(shí)現(xiàn)代碼

    C#操作圖片讀取和存儲(chǔ)SQLserver實(shí)現(xiàn)代碼

    用C#將Image轉(zhuǎn)換成byte[]并插入數(shù)據(jù)庫/將圖片數(shù)據(jù)從SQLserver中取出來并顯示到pictureBox控件上,接下來將為你詳細(xì)介紹下實(shí)現(xiàn)步驟,感興趣的你可以參考下
    2013-03-03
  • C#處理TCP數(shù)據(jù)的方法詳解

    C#處理TCP數(shù)據(jù)的方法詳解

    Tcp是一個(gè)面向連接的流數(shù)據(jù)傳輸協(xié)議,用人話說就是傳輸是一個(gè)已經(jīng)建立好連接的管道,數(shù)據(jù)都在管道里像流水一樣流淌到對(duì)端,那么數(shù)據(jù)必然存在幾個(gè)問題,比如數(shù)據(jù)如何持續(xù)的讀取,數(shù)據(jù)包的邊界等,本文給大家介紹了C#處理TCP數(shù)據(jù)的方法,需要的朋友可以參考下
    2024-06-06
  • Winform?控件優(yōu)化LayeredWindow無鋸齒圓角窗體

    Winform?控件優(yōu)化LayeredWindow無鋸齒圓角窗體

    這篇文章主要為大家介紹了Winform?控件優(yōu)化LayeredWindow實(shí)現(xiàn)無鋸齒圓角窗體示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • C#使用符號(hào)表實(shí)現(xiàn)查找算法

    C#使用符號(hào)表實(shí)現(xiàn)查找算法

    本文詳細(xì)講解了C#使用符號(hào)表實(shí)現(xiàn)查找算法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • C# WinForm調(diào)用net core實(shí)現(xiàn)文件上傳接口

    C# WinForm調(diào)用net core實(shí)現(xiàn)文件上傳接口

    這篇文章主要為大家詳細(xì)介紹了C# WinForm如何調(diào)用net core實(shí)現(xiàn)文件上傳接口,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-04-04
  • C#中的高效IO庫System.IO.Pipelines

    C#中的高效IO庫System.IO.Pipelines

    這篇文章介紹了C#中的高效IO庫System.IO.Pipelines,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • 在C#中調(diào)用Windows防火墻界面的常見方式

    在C#中調(diào)用Windows防火墻界面的常見方式

    在 C# 中調(diào)用 Windows 防火墻界面(基礎(chǔ)設(shè)置或高級(jí)安全設(shè)置),可以使用 進(jìn)程啟動(dòng)(Process.Start) 或 Win32 API 來實(shí)現(xiàn),所以本文給大家介紹了C#調(diào)用Windows防火墻界面的常見方式,需要的朋友可以參考下
    2025-11-11

最新評(píng)論

天镇县| 报价| 江永县| 巢湖市| 那曲县| 昌邑市| 鹿泉市| 鄂尔多斯市| 定南县| 巴南区| 渝北区| 潼南县| 荣成市| 周宁县| 清新县| 青田县| 砀山县| 西和县| 呼图壁县| 博野县| 延庆县| 天等县| 电白县| 青州市| 延安市| 宜城市| 肃北| 沅陵县| 三江| 乡城县| 分宜县| 新民市| 金昌市| 石门县| 洛南县| 海盐县| 宾川县| 阳信县| 贵定县| 鸡西市| 东山县|