关于MD5的32位和16位加密算法
蓝星空吧
全部回复
仅看楼主
level 5
蓝星空LXK 楼主
怎样将32位长度的md5加密过的码转换为16位长度的? 32位MD5的中间16位,也就是第9~25位就是16位MD5的值,怎么截取就不用我教你了吧?32位去掉首尾8个字符就是16位的md5密文123456的MD5 32位码e10adc3949ba59abbe56e057f20f883e123456的MD5 16位码49ba59abbe56e057 .Net MD5加密-16位32位代码内容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(8,16) ; } else//32位加密 { return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str,"MD5").ToLower(); } }~~~~~~~~~~~~~~~~~~~~~~~~~在ASP中的MD5函数是使用了32位MD5 Hashvalue中的第9~25位再变小写作为密文。知道这个原因,把ASP.NET的结果稍加处理就可以用来比较老数据库中的密码字串了。在ASP的MD5函数中第353、354行: 'MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d)) MD5=LCase(WordToHex(b) & WordToHex(c)) 'I crop this to fit 16byte database password :D第一句是取全部的32位密文,第二句则是取中间第9~25位为16位密文。
2007年01月17日 10点01分 1
level 5
蓝星空LXK 楼主
ASP(特指VBS)里自带了两个函数: LCase:转成小写 UCase:转成大写
2007年01月18日 14点01分 2
level 0
32位去掉首尾8个字符就是16位的md5密文那我要要把16位的md5密文还原成32位呢?
2007年03月12日 10点03分 3
level 5
蓝星空LXK 楼主
对不起,16位的无法还原成32位的
2007年03月13日 10点03分 4
level 0
16位码49ba59abbe56e057 能还原成123456吗?
2007年08月06日 05点08分 5
level 5
蓝星空LXK 楼主
不可以还原。
2007年08月15日 05点08分 6
1