Laravel 密码管理器解密密码

Posted

技术标签:

【中文标题】Laravel 密码管理器解密密码【英文标题】:Laravel Password Manager decrypt Passwords 【发布时间】:2022-01-21 12:37:07 【问题描述】:

我想用 Laravel 编写一个密码管理器。但我不明白如何以字符串形式从各个页面输出密码。如果使用 Laravel 的 bcrypt 功能,则无法再次显示原文。我真的想将所有密码以散列形式存储在数据库中。任何内容都不应该是纯文本。

有没有人有经验或想法如何实现这一点?

【问题讨论】:

为什么要解密密码?使用 password_hash 和 password_verify 可以让您在不解码的情况下正确存储和检查密码。 @NigelRen 我想为其他网站(如 Gmail、Facebook 等)存储我的密码,我需要以字符串形式查看它们,以便我可以复制它们 bcrypt 是一种散列算法,而不是encryption 算法。哈希被设计为一种方式。你需要使用 Laravel 中的 encryption 功能之一来做你想做的事情。 【参考方案1】:

您无法解密哈希,但您可以将“密码”加密/解密到单独的数据库列中。

// import the namespace
use Illuminate\Support\Facades\Crypt;

Crypt::encryptString('string to encrypt');

并使用解密加密字符串

// import the namespace
use Illuminate\Support\Facades\Crypt;

Crypt::decryptString('encrypted string here');

它使用来自.envAPP_KEY 进行加密和解密。你可以阅读更多here

【讨论】:

以上是关于Laravel 密码管理器解密密码的主要内容,如果未能解决你的问题,请参考以下文章

使用密码加密/解密数据,而数据库管理员无法解密

什么是密码管理器?有什么作用?

1Password,Lastpass,Keepass,选择哪个做为密码管理器

有没有办法使用 Argon2i 加密来解密密码?

1Password,Lastpass,Keepass,选择哪个做为密码管理器

密码学是怎么样通过加密和解密的,