在添加值之前先将其散列到数据库中

时间:2018-06-28 05:34:30

标签: laravel laravel-5.6

在添加到db之前,我必须对数据库值进行哈希处理,并在选择后重新进行哈希处理,以便于人类阅读。现在,我在"Helper\Helpers.php"文件夹中创建app。在助手文件中,我具有用于加密/解密值的功能。注册到作曲家的帮助程序文件会自动加载:

"autoload": {
    "classmap": [
        "database/seeds",
        "database/factories"
    ],
    "psr-4": {
        "App\\": "app/"
    },
    "files":[
        "app/Helpers/Helpers.php"
    ]
},

在我看来,此方法(在作曲家中进行文件注册)是一种不受保护的选项,用于注册自身存储的函数文件以进行加密。为了获得更可靠的保护,在哪里可以存储和使用具有加密和解密功能的文件?

1 个答案:

答案 0 :(得分:1)

如果您定义了模型,建议您使用Accessors and Mutators。它将允许您在写入存储之前对值进行加密,然后在读出时进行解密:

// mutator
public function setMyHashedValueAttribute($value)
{
    $this->attributes['my_hashed_value'] = encrypt($value);
}

// accessor
public function getMyHashedValueAttribute($value)
{
    return decrypt($value);
}