不可逆
的算法,输入信息生成唯一的128位散列值(32个字符)
如图 你是没有办法进行解密的,但是有一些爱好者就利用存储空间,记录这种计算后的结果,导致MD5加密也可以进行破解。目前破解率在70%-80%。所以也不是绝对的安全。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace 加密与解密
{
class Program
{
static void Main(string[] args)
{
//十进制 16112823919216812720820617719017010918916719636
// A180EFC0A87FD0CEB1BEAA6DBDA7C424
//16进制 A180EFC0A87FD0CEB1BEAA6DBDA7C424
string pwd = "ABA180EFC0A87FD0CEB1BEAA6DBDA7C424";
string md5 = GetMD5("leichao");
Console.WriteLine(pwd);
Console.WriteLine(md5);
if (md5.EndsWith(pwd))
{
Console.WriteLine("登陆成功");
}
else
{
Console.WriteLine("密码错误");
}
Console.ReadKey();
}
static string GetMD5(string message)
{
MD5 m5 = MD5.Create();
// 将字符串转成二进制数组
byte[] mbyte = Encoding.Default.GetBytes(message);
// 获取MD5加密后的二进制数组
byte[] m5byte = m5.ComputeHash(mbyte);
string result = "";
for (int i = 0; i < m5byte.Length; i++)
{
result += m5byte[i].ToString("X2");
}
return "AB"+ result;
}
}
}