近日发现有程序员在.net项目中自己编写md5算法实现,为避免不必要的资源消耗,特撰此文。
.net框架下md5实现已经集成于system.web.security名称空间,只需简单调用即获取结果:
string 结果字符串=system.web.security.formsauthentication.hashpasswordforstoringinconfigfile(输入字符串,"md5");
以下包装函数根据code参数的不同(可取16或32),分别返回参数str的16位和32位md5加密字串。
(16位字串用于模拟动网论坛等国内常见论坛的md5实现)
public string md5(string str,int code)
{
if(code==16)
{
return system.web.security.formsauthentication.hashpasswordforstoringinconfigfile(str,"md5").tolower().substring(8,16) ;
}
if(code==32)
{
return system.web.security.formsauthentication.hashpasswordforstoringinconfigfile(str,"md5");
}
return "00000000000000000000000000000000";
}
system.web.security名称空间封装的其他方法,可参见msdn。
*本处以c#为例
