asp.net中如何用MD5加密用户密码--要求和asp中的加密结果一致
我在用asp.net自带的用户管理页面添加用户时,结果总是和asp中的加密结果不一致,恳请高人指点。
ASP: password=md5(password) md5 is a function in md5.asp
following is the setting In ASP.net
<machineKey validationKey= "AutoGenerate,IsolateApps " decryptionKey= "AutoGenerate,IsolateApps " decryption= "Auto "
validation= "MD5 "/>
<membership defaultProvider= "Myuserdb ">
<providers>
<add name= "Myuserdb "
connectionStringName= "userdb "
applicationName= "/ "
enablePasswordRetrieval= "false "
enablePasswordReset= "false "
requiresQuestionAndAnswer= "false "
requiresUniqueEmail= "false "
passwordFormat= "Hashed "
type= "System.Web.Security.SqlMembershipProvider "/>
</providers>
</membership>
------解决方案--------------------用API直接加密 不要在Web.config里面设置 行吗?
string pwd=System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile( "123 ", "MD5 ");
Response.Write(pwd);
------解决方案--------------------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();
}
}
------解决方案-------------------- <authentication mode= "Form ">
<forms name= "name " loginurl= "URL " ....>
<credentials password= "[Clear|SHA1|MD5] ">
<clear/>
<remove name= "username "/>
<user name= "username " password= "password ">
</credentials>
</forms>
</authentication>
出自《ASP.NET开发指南》 赤刚 班上只一本 谁如果有电子版的 发我下 谢谢
还有 csdn 推荐的 Begining C# Object 韩磊 的 谁如果有这本电子版的 也发我下 谢谢
chenou851123@Gmail.com
------解决方案--------------------很简单的啊.
把32位结果中间的那16个拿出来,就是16位的结果了.
------解决方案--------------------ASP中MD5编码大多数都是ASCII(GB2312)等编码的,.NET里默认是UTF8的
动网论坛等ASP系统是取32位MD5字符串中间的16位保存的
------解决方案--------------------16位和32位MD5的问题
取32位的中间一半就是16位的了。字符串截取LZ应该会了吧