溫馨提示×

如何用C#進(jìn)行哈希加密

c#
小樊
84
2024-09-14 23:47:05
欄目: 編程語言

在C#中,可以使用System.Security.Cryptography命名空間下的類來實現(xiàn)哈希加密

using System;
using System.Security.Cryptography;
using System.Text;

class Program
{
    static void Main()
    {
        string input = "Hello, World!"; // 要加密的字符串

        // 使用SHA256哈希算法
        using (SHA256 sha256 = SHA256.Create())
        {
            byte[] inputBytes = Encoding.UTF8.GetBytes(input);
            byte[] hashBytes = sha256.ComputeHash(inputBytes);

            StringBuilder sb = new StringBuilder();
            for (int i = 0; i< hashBytes.Length; i++)
            {
                sb.Append(hashBytes[i].ToString("x2"));
            }
            Console.WriteLine("SHA256哈希值: " + sb.ToString());
        }

        // 使用MD5哈希算法
        using (MD5 md5 = MD5.Create())
        {
            byte[] inputBytes = Encoding.UTF8.GetBytes(input);
            byte[] hashBytes = md5.ComputeHash(inputBytes);

            StringBuilder sb = new StringBuilder();
            for (int i = 0; i< hashBytes.Length; i++)
            {
                sb.Append(hashBytes[i].ToString("x2"));
            }
            Console.WriteLine("MD5哈希值: " + sb.ToString());
        }
    }
}

這個示例首先創(chuàng)建了一個字符串input,然后分別使用SHA256和MD5哈希算法對其進(jìn)行加密。ComputeHash方法接收一個字節(jié)數(shù)組作為輸入,返回一個包含哈希值的字節(jié)數(shù)組。最后,將哈希值轉(zhuǎn)換為16進(jìn)制字符串并輸出。

注意:哈希加密是不可逆的,因此無法從哈希值還原原始數(shù)據(jù)。它通常用于驗證數(shù)據(jù)的完整性和安全存儲密碼等敏感信息。

0