手上有个系统,是.net写的。这个.net系统在加密用户密码时候,没有用salt,而是在MD5的基础上,进行了16进制转换和位偏移,并且用户的历史密码也是用这种方式来保存:
public static string Encrypt(string pwd)
{
StringBuilder returnValue = new StringBuilder();
var data = Encoding.Unicode.GetBytes(pwd);
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
var result = md5.ComputeHash(data);
foreach (var t in result)
{
returnValue.Append(t.ToString("X", CultureInfo.CurrentCulture).PadLeft(2, '0'));
}
return returnValue.ToString();
}
那么作为最好的语言,PHP怎么才能写一个类似的密码验证函数?嗯,主要是用在登录的时候,匹配用户密码是否正确。微软那一套东西很久就不看了,实在搞不通.net那帮家伙们,直接用salt不久解决了的问题,非要弄一段自以为了不起的“变种”MD5加密。
嗯,问题来了,有木有熟悉PHP和.net的高手帮我用PHP实现一下?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.