C#でよく使われる暗号化・復号化の方法(MD5暗号化・復号化)
C#には、MD5などの一般的な暗号化および復号化メソッドが多数あります。以下はC#を使用したMD5暗号化および復号化の例です。
using System;
using System.Security.Cryptography;
using System.Text;
public class Program
{
public static void Main()
{
string originalText = "Hello World";
// MD5加密
string md5Hash = MD5Hash(originalText);
Console.WriteLine("MD5 Hash: " + md5Hash);
// MD5验证
bool md5Verify = VerifyMD5Hash(originalText, md5Hash);
Console.WriteLine("MD5 Verify: " + md5Verify);
}
// 使用MD5加密字符串
public static string MD5Hash(string text)
{
using (MD5 md5 = MD5.Create())
{
byte[] inputBytes = Encoding.ASCII.GetBytes(text);
byte[] hashBytes = md5.ComputeHash(inputBytes);
StringBuilder builder = new StringBuilder();
for (int i = 0; i < hashBytes.Length; i++)
{
builder.Append(hashBytes[i].ToString("x2"));
}
return builder.ToString();
}
}
// 验证MD5哈希值
public static bool VerifyMD5Hash(string text, string hash)
{
string hashOfText = MD5Hash(text);
StringComparer comparer = StringComparer.OrdinalIgnoreCase;
return comparer.Compare(hashOfText, hash) == 0;
}
}
上記の例では、MD5Hash関数は入力文字列をMD5アルゴリズムで暗号化し、結果を16進数文字列形式に変換して返します。VerifyMD5Hash関数は、入力文字列のMD5ハッシュ値と与えられたハッシュ値が一致するかどうかを検証するために使用されます。
MD5はハッシュアルゴリズムであり、逆戻りできないことに注意してください。そのため、MD5で暗号化された結果は元の文字列に戻すことができません。MD5は通常、データの完全性を検証するために使用され、機密情報を暗号化するためではありません。