欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

php Argon2 示例 文心一言 chatgpt 有大用

Argon2 是一种现代的密码哈希函数,被设计为取代其他较旧的哈希函数,如 MD5 和 SHA1,它提供了更高的安全性。在 PHP 中,你可以使用 password_hash() 和 password_verify() 函数与 Argon2 哈希算法一起工作。

下面是一个使用 Argon2 进行密码哈希和验证的 PHP 示例:

php复制代码

<?php  



// 原始密码  

$password = 'my_secure_password';



// 创建一个 Argon2 哈希(默认是 Argon2i)  

$hashedPassword = password_hash($password, PASSWORD_ARGON2I);



// 存储哈希值到数据库或其他存储介质(这里只是打印出来)  

echo "Hashed Password: " . $hashedPassword . PHP_EOL;



// 假设你从数据库或其他存储介质中检索到了哈希值  

$storedHash = $hashedPassword; // 在实际场景中,你会从数据库或其他地方获取这个值  



// 用户输入的密码进行验证  

$userInput = 'my_secure_password'; // 假设这是用户输入的密码  



if (password_verify($userInput, $storedHash)) {

echo "Password verified successfully!";

} else {

echo "Invalid password.";

}



// 注意:在实际应用中,不要将原始密码或哈希值直接打印或输出到任何地方。  

// 这只是一个示例,用于展示如何使用 Argon2 哈希和验证密码。  

?>

在上面的示例中,我们使用了 password_hash() 函数来创建一个 Argon2 哈希(默认是 Argon2i)。然后,我们使用 password_verify() 函数来验证用户输入的密码是否与存储的哈希值匹配。

请注意,password_hash() 函数的第二个参数是哈希算法。在 PHP 7.2+ 中,你可以使用 PASSWORD_ARGON2I(Argon2id 的变种,具有更高的安全性)或 PASSWORD_ARGON2_DEFAULT(这取决于 PHP 配置和可用性,通常是 Argon2id 或 Argon2i)。

还要注意的是,你应该始终使用参数化查询或预编译语句来防止 SQL 注入攻击,当你将哈希值存储到数据库时。在上面的示例中,我们只是简单地打印了哈希值,但在实际应用中,你应该将其安全地存储到数据库中。


普通分类: