微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 PHP 制作盐哈希从网络注册新帐户?

如何解决如何使用 PHP 制作盐哈希从网络注册新帐户?

sha_pass_hash 字段 has been removed 之后验证 AzerothCore 帐户(制作盐和验证器)的 PHP 算法是什么?

在我们使用之前:

$sha_pass_hash = getpasswordHash($account_name,$password);

现在怎么样了?如何制作salt和verifier来注册新账号?

谁能提供一些详细的示例说明?

解决方法

我刚刚为这里的 acore-cms 做了 https://github.com/azerothcore/acore-cms/pull/20/files

我什至发布了快速查看代码以使用盐计算密码:

function CalculateSRP6Verifier($username,$password,$salt)
{
    // algorithm constants
    $g = gmp_init(7);
    $N = gmp_init('894B645E89E1535BBDAD5B8B290650530801B18EBFBF5E8FAB3C82872A3E9BB7',16);

    // calculate first hash
    $h1 = sha1(strtoupper($username . ':' . $password),TRUE);

    // calculate second hash
    $h2 = sha1($salt.$h1,TRUE);

    // convert to integer (little-endian)
    $h2 = gmp_import($h2,1,GMP_LSW_FIRST);

    // g^h2 mod N
    $verifier = gmp_powm($g,$h2,$N);

    // convert back to a byte array (little-endian)
    $verifier = gmp_export($verifier,GMP_LSW_FIRST);

    // pad to 32 bytes,remember that zeros go on the end in little-endian!
    $verifier = str_pad($verifier,32,chr(0),STR_PAD_RIGHT);

    return $verifier;
}

记得安装 php-gmp 库。

如果您需要创建一个帐户,您可以使用它来生成盐:

// generate a random salt
$salt = random_bytes(32);

这些代码受到 MasterKing32 CMS 的强烈启发。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。