asp.net中30位密码加密方法[MD5加密]

作者: unvs 分类: ASP.NET 发布时间: 2011-03-29 23:21 ė16,594 views 61条评论

有时会在asp.net网站或者系统中,见到30位的密码加密,其实道理比较简单。

下面是原理:

md5加密成32位后,如果结果超过30位,截取其中30位,这样就ok了;
只要在加密函数内部进行这个处理,这就是加密成30位的加密方式
熟话说:学会变通,变通才是硬道理。

下面是加密函数代码:

C# code
public static string Hash(string source)
{
MD5 md5 = MD5.Create();//将源字符串转换成字节数组
byte[] soureBytes = System.Text.Encoding.UTF8.GetBytes(source);
byte[] resultBytes=md5.ComputeHash(soureBytes);//将加密后的字节数组转换成字符串
string result =null;
for (int i = 0; i < resultBytes.Length; i++)
{ result =result+resultBytes[i].ToString("X"); }
if(result.lenth>30)//如果超过30个字符,就截取前30个
{result=result.SubString(0,30);}
return result;
}

好了,30位密码生成就是这么简单。

下面是几个当网站后台忘记密码时,根据加密位数替换的方法:

对于MD5加密,
1、如果遇到16位MD5加密文件,而又不知道的密码的,   
请在数据库中换上这组加密的数据吧 469e80d32c0559f8  
那么密码就是admin888  
2、如果遇到32位MD5加密文件,而又不知道的密码的,   
请在数据库中换上这组加密的数据吧 96e79218965eb72c92a549dd5a330112   
那么密码就是111111 
3、如果遇到30位MD5加密,而又不知道的密码的
请在数据库中换上这组加密的数据吧 293740B3817A38ADC0898C1858AA86 那么密码就是admin

本博文章基本上属于原创或收集整理,都是心血结晶。
欢迎转载分享,转载请注明出处,谢谢!
本文地址:asp.net中30位密码加密方法[MD5加密]

一条评论

  1. 阿修 2013 年 6 月 20 日 下午 3:13 回复

    这个感觉30位md5不是简单的截取,因为和16位md5对比看不出太多的相似。比如网络上给出的200774a0859c78b85577c268015e8d(admin)就很难和7a57a5a743894a0e(admin16位md5)找到相似性,如果是直接截取应该类似16位和32位md5一样有一段相同或及其相似才是(32位md5去掉前8后8位中间的16位就是16位md5的值)。

    Unvs博客 于 2013-06-21 12:24:57 回复

    嗯,分析有理!其实,加密位数有不同实现的方法的,文章中提的是常规方法。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Ɣ回顶部