为什么md5加密不取32位就取16位阿,取10位,20位可以吗
大家好问个问题
public string md5(string str, int code)
{
if (code == 16) //16位MD5加密(取32位加密的9~25字符)
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower().Substring(9, 25);
}
else//32位加密
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower();
}
}
md5加密,我看网上的例子取16位是都是取9到25,取15位或者10位什么的可以吗?
要是16位,去1到16可以吗
为什么非取16位阿
------解决方案--------------------爱取几位取几位,这个哪有什么限制
只是你取的位数越少出现重合的几率就越大~
------解决方案--------------------随便了 你想取多少都可以!
可能为了节省空间把数据库的字段
------解决方案--------------------随便取多少,并且随便你从第几位开始取,大多取16位是为了和asp的md5相通.也就是比较经典的一种9~25字符