手上有个系统,是.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实现一下?