php - 将ASP函数转换为PHP以生成密码

标签 php asp.net md5

我正在将 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/

相关文章:

php - $_SERVER 变量的编码,如 $_SERVER ['REQUEST_URI' ]

c# - 从 CodeBehind 填充 GridView

ms-access - 从 Microsoft Access 计算字符串的 MD5

java - 如何使用java或groovy计算目录上的md5校验和?

php - md5密码确认失败

php - MySQL 从一个表中选择行,并在第二个表中选择多行

php - 检查 woocommerce 订单项目中是否存在特定费用

php - mysql中使用pdo进行sql查询

c# - 使用 updatepanel 和母版页提交表单后设置 javascript ScrollTo

c# - Hangfire 在真实服务器中不工作