Laravel扩展推荐:Ciphersweet包(加密/解密字段)

2022-12-24

本篇文章给大家分享一个Laravel扩展:Ciphersweet包,介绍一下怎么利用Laravel Ciphersweet 来加密/解密 Laravel 中的 Eloquent 模型字段,希望对大家有所帮助!

Laravel Ciphersweet 是由 Spatie 提供的一个包,用于在Laravel应用程序中集成可搜索的字段级加密。该包的 readme 解释了密码甜蜜可以帮助解决的问题,如下所示:

在你的项目中,你可能会将敏感的个人数据存储在数据库中。如果未经授权的人访问你的数据库,则所有敏感数据都可以读取,这显然是不好的。

要解决此问题,你可以对个人数据进行加密。这样,未经授权的人无法读取它,但当你需要显示或使用数据时,你的应用程序仍然可以解密它。

这个包是 Ciphersweet 的包装器,可以轻松地将其功能集成到 Laravel 模型中。以下是自述文 setup instructions 中的模型示例,该示例说明了使用 Ciphersweet 模型的外

use Spatie\LaravelCipherSweet\Contracts\CipherSweetEncrypted;
use Spatie\LaravelCipherSweet\Concerns\UsesCipherSweet;
use ParagonIE\CipherSweet\EncryptedRow;
use Illuminate\Database\Eloquent\Model;

class User extends Model implements CipherSweetEncrypted
{
    use UsesCipherSweet;

    public static function configureCipherSweet(EncryptedRow $encryptedRow): void
    {
        $encryptedRow
            ->addField('email')
            ->addBlindIndex('email', new BlindIndex('email_index'));
    }
}

这允许你加密用户的电子邮件,以防止未经授权的人读取数据,但允许你解密数据以显示或使用它。

一旦你配置了此包并设置了模型,你就可以使用盲索引在数据库中搜索加密数据:

$user = User::whereBlind('email', 'email_index', 'rias@spatie.be');

此包还有助于生成加密密钥和加密模型属性,以加快与密码的集成。

我想指出的是,你不应该在不了解你试图解决的用例的来龙去脉的情况下盲目地使用这个包。你可以在 此页面 上了解有关 CipherSweet 的更多信息,其中包含许多链接资源

CipherSweet 还具有 PHP 特定文档 可帮助您快速了解底层 PHP 包。

我还建议阅读 Rias 的帖子,使用 CipherSweet 加密 Laravel Eloquent 模型。

要开始使用这个包,请在 GitHub 上的 spatie/laravel-ciphersweet 上查看它。


packages

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。


原文地址:https://laravel-news.com/laravel-ciphers...

译文地址:https://www.php.cn/link/53701130ff29be387e2fa7e04928b5ed

以上就是Laravel扩展推荐:Ciphersweet包(加密/解密字段)的详细内容,更多请关注北冥有鱼其它相关文章!

本文转载自【PHP中文网】,希望能给您带来帮助,苟日新、日日新、又日新,生命不息,学习不止。

《Laravel扩展推荐:Ciphersweet包(加密/解密字段).doc》

下载本文的Word格式文档,以方便收藏与打印。