Laravel 在添加之前对数据库中的附加值进行哈希运算
我必须在添加到数据库之前散列数据库值,并在选择之后重新散列数据库值,以便于阅读。现在我在Laravel 在添加之前对数据库中的附加值进行哈希运算,laravel,laravel-5.6,Laravel,Laravel 5.6,我必须在添加到数据库之前散列数据库值,并在选择之后重新散列数据库值,以便于阅读。现在我在app文件夹中创建“Helper\Helpers.php”。在helpers文件中,我有用于加密/解密值的函数。已注册到composer autoloads的帮助程序文件: "autoload": { "classmap": [ "database/seeds", "database/factories" ], "psr-4": { "A
app
文件夹中创建“Helper\Helpers.php”
。在helpers文件中,我有用于加密/解密值的函数。已注册到composer autoloads的帮助程序文件:
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
},
"files":[
"app/Helpers/Helpers.php"
]
},
在我看来,这种方法(在composer中注册文件)是一种不受保护的选项,用于注册存储在其自身中的函数的文件进行加密。要获得更可靠的保护,我可以在哪里存储和使用具有加密和解密功能的文件?如果您定义了模型,我建议您。它允许您在写入存储之前对值进行加密,然后在读取时进行解密:
// mutator
public function setMyHashedValueAttribute($value)
{
$this->attributes['my_hashed_value'] = encrypt($value);
}
// accessor
public function getMyHashedValueAttribute($value)
{
return decrypt($value);
}
当我注册到laravel项目时,我的个人信息是加密的。当我想使用数据库中的电子邮件登录时,Laravel找不到我的电子邮件并返回错误:
这些凭据与我们的记录不匹配。
。它无法在登录时解密电子邮件。我可以在哪里解密登录信息并访问应用程序@DigitalFlovery您可能需要使用Hash::check
与哈希值进行比较,如Hash::check('foo@example.com“,$hashedEmail)
。或者,您可以在请求发布到服务器时对电子邮件地址进行散列,以便Laravel在数据库中进行查找时使用散列值。