formatd/doctrine-encryption

此包提供了一个存储在持久化中加密的字符串 doctrine 数据类型。

v1.0.0 2021-09-08 16:23 UTC

This package is auto-updated.

Last update: 2024-09-08 23:00:46 UTC


README

此 Neos Flow 包允许您在数据库中加密持久化数据。

它做什么?

它挂钩到 doctrine 持久化层,并在将数据写入数据库时加密数据。当从数据库中加载模型时,数据再次解密。

此包受其他框架或直接针对 doctrine 的几个类似包的启发。

兼容性

版本方案

 1.0.0 
 | | |
 | | Bugfix Releases (non breaking)
 | Neos Compatibility Releases (non breaking except framework dependencies)
 Feature Releases (breaking)

发布和兼容性

设置

首先,在配置中设置您的私有加密密钥。(如果加密密钥丢失,数据库中的数据也会丢失)

FormatD:
  DoctrineEncryption:
    secretKey: '<PleaseSetYourSecretKey>'

使数据库列加密

配置加密数据库列有两种方式。或者通过模型本身的注解,或者通过 Settings.yaml 中的配置。

使用注解进行配置

您可以使用 text_encryptedarray_encrypted 作为列类型。

示例


	/**
	 * @var string
	 * @ORM\Column(type="text_encrypted")
	 */
	protected $myConfidentialProperty = '';
	

在设置中配置

如果您想从另一个包加密数据,可以通过添加配置来实现。目前仅支持 method: default

示例

FormatD:
  DoctrineEncryption:
    entities:
      MyPackage\Website\Domain\Model\User:
        phoneNumber:
          method: default
        name.firstName:
          method: default
        name.lastName:
          method: default
        name.fullName:
          method: default
        primaryElectronicAddress.identifier:
          method: default