Laravel 在存储到数据库之前加密密码并解密以用于电子邮件设置

Laravel encrypt password before storing on DB and decrypt it to use on email settings

我按照本教程创建了存储在数据库中的动态电子邮件设置。

https://kayike.medium.com/enable-unique-and-dynamic-smtp-mail-settings-for-each-user-laravel-48e320d381ec

唯一的问题是密码没有加密。我想在存储到数据库之前对其进行加密,并在使用 MailServiceProvider 之前对其进行解密。

我尝试使用 bcrypt 但无法解密。有什么建议吗?

谢谢

查看加密文档:https://laravel.com/docs/8.x/encryption

encrypting密码:

$encrypted = crypt::encryptString($password);

//存入数据库

decrypting密码:

$decrypted_password = crypt::decryptString($encrypted);
//use this for mailer settings

注意:不要忘记使用命名空间Illuminate\Support\Facades\Crypt; 在控制器中

bcrypt 的补充说明: 加密-解密不同于散列,bcrypt 是一种无法解密的散列公式(单向过程)。