asp.net中30位密码加密方法[MD5加密]
有时会在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加密]
一条评论
这个感觉30位md5不是简单的截取,因为和16位md5对比看不出太多的相似。比如网络上给出的200774a0859c78b85577c268015e8d(admin)就很难和7a57a5a743894a0e(admin16位md5)找到相似性,如果是直接截取应该类似16位和32位md5一样有一段相同或及其相似才是(32位md5去掉前8后8位中间的16位就是16位md5的值)。