Argon2id在PHP中如何存储盐值?
创始人
2024-09-13 04:30:49
0

在PHP中使用Argon2id算法存储盐值的示例代码如下:

// 生成盐值
$salt = random_bytes(SODIUM_CRYPTO_PWHASH_SALTBYTES);

// 将盐值转换为Base64编码
$saltEncoded = base64_encode($salt);

// 使用Argon2id算法进行哈希
$password = "password";
$hash = sodium_crypto_pwhash_str($password, SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE);

// 存储盐值和哈希密码
$storedData = [
    'salt' => $saltEncoded,
    'hash' => $hash
];

// 存储$storedData到数据库或其他持久化存储中
// ...

// 验证密码
$enteredPassword = "password";

// 从持久化存储中获取盐值和哈希密码
$storedSalt = base64_decode($storedData['salt']);
$storedHash = $storedData['hash'];

// 使用相同的参数进行验证
$isPasswordValid = sodium_crypto_pwhash_str_verify($storedHash, $enteredPassword);

if ($isPasswordValid) {
    echo "密码验证成功";
} else {
    echo "密码验证失败";
}

上述代码首先生成一个随机的盐值,然后将盐值进行Base64编码。接下来,使用Argon2id算法对密码进行哈希,并将盐值和哈希密码存储在$storedData数组中。最后,将$storedData存储到数据库或其他持久化存储中。

在验证密码时,从持久化存储中获取盐值和哈希密码,并使用sodium_crypto_pwhash_str_verify函数进行验证。如果密码验证成功,输出"密码验证成功",否则输出"密码验证失败"。

相关内容

热门资讯

透视绝活!wepoker有什么... 透视绝活!wepoker有什么规律(HHpoker脚本挂)果然有辅助脚本(哔哩哔哩)小薇(辅助器软件...
透视有挂!微乐小程序免费黑科技... 透视有挂!微乐小程序免费黑科技,微信小程序辅助器脚本(透视)一贯真的是有辅助方法(哔哩哔哩)1、模拟...
透视手筋!wepoker到底有... 透视手筋!wepoker到底有没有透视(HHpoker安装包)原来是有辅助技巧(哔哩哔哩)1、完成w...
黑科技教程!微乐小程序黑科技免... 黑科技教程!微乐小程序黑科技免费,微乐小程序自建房透视(透视)一贯有辅助技巧(哔哩哔哩)1、模拟器是...
透视教程书!hhpoker是正... 透视教程书!hhpoker是正规的吗(AApoker插件)确实是有辅助脚本(哔哩哔哩)1、上手简单,...
据悉!微信微乐游戏辅助脚本,微... 据悉!微信微乐游戏辅助脚本,微乐老友广东辅助器(透视)本来存在有辅助挂(哔哩哔哩);脚本下载中分为三...
透视教程书!hhpoker哪个... 透视教程书!hhpoker哪个俱乐部靠谱(WePoKer增加)确实是有辅助脚本(哔哩哔哩)1、hhp...
黑科技教程!微乐小程序免费黑科... 黑科技教程!微乐小程序免费黑科技,微乐自建房免费辅助入口在哪里(透视)本来存在有辅助挂(哔哩哔哩)1...
透视学习!wepoker辅助器... 透视学习!wepoker辅助器安装包(WePoKer新版本)总是存在有辅助app(哔哩哔哩)1、完成...
透视辅助!微信微乐游戏辅助脚本... 透视辅助!微信微乐游戏辅助脚本,微信小程序透视微乐(透视)真是存在有辅助神器(哔哩哔哩)1、下载好正...