PHP - 使用一次性密码本来存储加密密码

标签 php security encryption passwords

考虑到一次性密码本是牢不可破的(据我所知,请随时纠正我),如果我要生成一个密码本,并在用户使用时使用同样的密码本来加密网站的密码创建并将加密密码存储在我的数据库中,这是一种安全的方法吗?换句话说,只要没人知道这个垫子是什么,就可以永远保留同一个垫子吗?

我应该使用 mcrypt 之类的东西吗?

最佳答案

您将使用一次性密码本对密码进行加密。加密密码并不是最佳选择,因为无论您如何执行,都将能够解密密码。您的应用程序本身必须有权访问该 key (或多个 key ,因为每个一次性密码本只能加密一个密码),因此如果攻击者拥有足够的权限,他就可以进行攻击。

这就是为什么我们使用哈希函数来存储密码,它们是单向的,您可以检查输入的密码是否产生相同的哈希值,但无法取回原始密码。 PHP提供了函数password_hash()为了生成这样的哈希值,它处理了生成随机盐的所有陷阱,并使用缓慢的 BCrypt 来哈希密码。

关于PHP - 使用一次性密码本来存储加密密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19255493/

相关文章:

python - 更改后强制 scapy 重新剖析图层

javascript - JS/XSS : When assigning user-provided strings to variables; is it enough to replace <, > 和字符串分隔符?

php - Laravel 5.3 无法使用集合中的选择值

php - 数据库条目与输出数据不同

php - 单元测试 Zend Controller 和模拟一些已执行的操作

c# - ASP.NET Core 使用带有 cookieauthentication 的自定义身份验证处理程序

Java加密文件数据并将其写入同一个文件

php - 分发时防止删除代码?

encryption - 对字符串屏蔽/混淆函数进行逆向工程

php - 根据文件存在情况通过 .htaccess 重定向图像请求