欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

简单的MD5密码加密和解密方法

来源:本站整理 作者:佚名 时间:2017-02-26 TAG: 我要投稿

MD5的算法是不可逆的,MD5被广泛用于密码验证和消息体完整性验证。
下面的例子用到了密码加密和登陆时的解密的基本方法。当然这样很容易被暴力破解,可以做其他改进,如先设计一个足够复杂的密码,然后将他的MD5值与原密码MD5值相加后再求一次MD5值,这样可以增加破解难度。
简单示例如下:

[csharp] view plain copy
static void Main(string[] args) 

 
    Console.WriteLine("input password"); 
    string source = Console.ReadLine(); 
    string hash = GetMd5Hash(source); 
    Console.WriteLine("password: {0}, MD5 {1}", source, hash); 
    Console.WriteLine("input password"); 
    string psd = Console.ReadLine(); 
    if (VerifyMd5Hash(psd, hash))//验证成功返回OK 
        Console.WriteLine("OK"); 
    else 
        Console.WriteLine("ERROR"); 
    Console.ReadKey(); 

 
static string GetMd5Hash(string input)//获取密码对应的MD5字符串 

    using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider()) 
    { 
        return BitConverter.ToString(md5.ComputeHash 
            (UTF8Encoding.Default.GetBytes(input))).Replace("-", ""); 
    } 

 
static bool VerifyMd5Hash(string input, string Hash)//比较输入密码 

    string hashOfInput = GetMd5Hash(input); 
   // StringComparer comparer = StringComparer.OrdinalIgnoreCase;//忽略大小写的比较器 
    return hashOfInput.CompareTo(Hash) == 0 ? true : false; 
   // return comparer.Compare(hashOfInput, Hash) == 0 ? true : false; 

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载