php密码加密,密钥包括

php密码加密,密钥包括,php,encryption,passwords,Php,Encryption,Passwords,我使用hash_hmac在文本文件(受htaccess保护)中使用密钥对我的密码进行散列,如下所示 $hmac = hash_hmac('sha512', $p, file_get_contents(folder/keys.txt')); 它工作得很好,但现在我想知道我是否应该把我的密钥放在一个.php脚本中,并包含它而不是文件内容 哪种方法更安全、更快?为什么要使用某个密钥进行散列?您永远不必解码用户密码 为什么不使用类似md5()的东西,然后在测试密码是否正确时(例如,在登录时,只需执行以

我使用hash_hmac在文本文件(受htaccess保护)中使用密钥对我的密码进行散列,如下所示

$hmac = hash_hmac('sha512', $p, file_get_contents(folder/keys.txt'));
它工作得很好,但现在我想知道我是否应该把我的密钥放在一个.php脚本中,并包含它而不是文件内容


哪种方法更安全、更快?

为什么要使用某个密钥进行散列?您永远不必解码用户密码

为什么不使用类似md5()的东西,然后在测试密码是否正确时(例如,在登录时,只需执行以下操作:

if (md5($input) == $storedPassword) {
//correct
} else {
//incorrect
}

不使用数据库的原因是什么?只是想知道…完全从文档根目录中删除它…谢谢爸爸,我以前从来没有这样做过。最好看看我的主机是否允许。我认为include的执行速度会比文件快吗_contents@FredTurner在d0mmmy回答的评论中,您说您正在使用“bcrypt、salted和blowfish”,但您在这个问题中的代码示例不是这样的。您能稍微澄清一下吗?@user1615903我只是发布了与我的问题相关的代码,这是我“导入”的方法“我的txt文件。这只是整个进程的一小部分md5?…还不如将其存储为纯文本。我使用的是bcrypt、salted和blowfish。我不建议使用md5:sha512更安全,而且是一种单向散列算法。他使用的是比md5更安全的sha512。如果以md5为例,为什么没有salt呢?”。