[英]How-to make salt hash using PHP to register new account from web?
刪除sha_pass_hash
字段后,用於驗證 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, 1, 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 的強烈啟發。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.