我正在将 ASP 站点转换为 PHP 站点。该网站使用第 3 方 API。 3rd 方 API 需要存储在数据库中的用户 ID 和每个用户的密码。 ASP 站点没有将密码保存在数据库中,而是使用以下函数根据 UserID 每次导出密码:
public static string GetLmsUserPassword(int userId)
{
var hash = userId.ToString().MD5();
return hash.Substring(15, 4) + hash.Substring(4, 4);
}
在 PHP 中,我编写了以下内容:
function lms_password($user_id) {
$hash = md5((int)$user_id);
$password = substr($hash,15,4).substr($hash,4,4);
return $password;
}
但是,PHP 中生成的密码似乎与 ASP 中的密码不匹配。我想知道 ASP 的 md5 是否有所不同?
示例 UserID 实际上是一个字符串,而不仅仅是一个数字:22E21F5D-7979-467E-928D-4EFCC323BDCB
最佳答案
.NET 和 PHP 版本之间的结果差异可能是由于各自将字符串转换为 int 的方式造成的。尝试在两者中转换您的示例 ID,然后进行比较。
关于php - 将ASP函数转换为PHP以生成密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13750339/