gpt4 book ai didi

php - 我如何有效地使用 crypt()

转载 作者:搜寻专家 更新时间:2023-10-31 20:51:43 25 4
gpt4 key购买 nike

我不明白 php.net 上的文档.在针对原始加密进行测试时,他们似乎使用密码的加密版本作为盐。

当我在没有可选的第二个参数(盐)的情况下插入 crypt 时,我得到了相同密码的不同加密版本。这是预期的行为吗?

但是,如果我插入第二个参数“d4”,那么对于相同的密码输入,我会得到相同的加密密码。预期行为。

在注册时插入之前:

$pass = crypt('$pass', 'd4'); // after this I insert $pass into the mysql table

登录测试:

$pass = crypt($pass, 'd4'); // after this I test $pass against the mysql table

PHP.net 文档:

<?php
$password = crypt('mypassword'); // let the salt be automatically generated

/* You should pass the entire results of crypt() as the salt for comparing a
password, to avoid problems when different hashing algorithms are used. (As
it says above, standard DES-based password hashing uses a 2-character salt,
but MD5-based hashing uses 12.) */
if (crypt($user_input, $password) == $password) {
echo "Password verified!";
}
?>

这是如何工作的?

最佳答案

因为 crypt() 只使用盐参数的前两个字符(或者任何 CRYPT_SALT_LENGTH 是),传递加密密码(其中第一个字符是最初用于加密的盐)做正确的事。

如果没有传入盐参数,则会生成并使用随机盐。

关于php - 我如何有效地使用 crypt(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6770076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com