drjele/doctrine-encrypt

此包已被弃用且不再维护。作者建议使用 precision-soft/symfony-doctrine-encrypt 包。

Doctrine 加密类型

安装: 1,901

依赖者: 0

建议者: 0

安全性: 0

星标: 0

分支: 2

类型:symfony-bundle

v4.3.2 2024-06-11 10:50 UTC

README

不再维护,已迁移至 https://gitlab.com/precision-soft-open-source/symfony/doctrine-encrypt

该包会自动将 \Drjele\Doctrine\Encrypt\Type 中的类型注册为 Doctrine 类型。

它可以用于任何字符串字段。

您可以自由地进行分支和修改.

欢迎贡献.

目的

使用 Doctrine 加密和解密数据。

我正在尝试解决当前解决方案中的一些问题

  • 在使用实体或仅选择字段时,提供加密和解密功能。
  • 简单地进行 WHERE 操作(目前参数必须在设置之前进行加密)。

用法

  • 实体中的值始终为未加密状态。
  • AES256FixedEncryptorAES256FixedType 对的使用目的是为了能够使用 WHERE,因为它对于相同的输入始终返回相同的结果。
  • EntityService::getEncryptor() 将返回用于字段的加密器,如果您需要加密一个值用作 WHERE 参数。
  • 实体内部
class Customer
{
    /**
     * @ORM\Column(type="encryptedAES256")
     */
    private string $name;

    public function getName(): ?string
    {
        return $this->name;
    }

    public function setName(string $name): self
    {
        $this->name = $name;

        return $this;
    }
}
  • 加密未加密的数据库
php bin/console drjele:doctrine:database:encrypt
  • 解密加密的数据库
php bin/console drjele:doctrine:database:decrypt

开发

git clone git@gitlab.com:drjele-symfony/doctrine-encrypt.git
cd doctrine-encrypt

rm -rf .git/hooks && ln -s ../dev/git-hooks .git/hooks

./dc build && ./dc up -d

待办事项

  • 简单地进行 WHERE 操作,传递未加密的参数,并自动进行加密。
  • 配置已注册的加密器。
  • 有一个 isEncrypted($entity, $fieldName): bool 方法。
  • 单元测试。

灵感来源于