日期:2014-05-18  浏览次数:20439 次

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应该会了吧