ywh / doctrine-encryption-extension
Doctrine2加密扩展
此软件包的官方仓库似乎已不存在,因此软件包已被冻结。
1.3
2018-08-30 09:29 UTC
Requires
- php: >=5.5.9
- defuse/php-encryption: ^2.1
- gedmo/doctrine-extensions: ^2.4
Requires (Dev)
- doctrine/common: >=2.5.0
- doctrine/orm: >=2.5.0
- phpunit/phpunit: ^5.7
- symfony/yaml: ~2.6|~3.0
Suggests
- doctrine/orm: to use the extensions with the ORM
This package is not auto-updated.
Last update: 2024-06-09 04:03:34 UTC
README
此扩展允许使用php-encryption加密实体字段。
此扩展基于并使用Doctrine2行为扩展。
设置和自动加载
阅读文档或查看示例代码,了解如何以最优化方式设置和使用扩展。
可加密实体示例
可加密注解
- @YWH\Encryptable\Mapping\Annotation\Encryptable这个类注解表示一个类是否可加密。可用的配置选项
- usePassword密钥是否受密码保护?默认:true
- @YWH\Encryptable\Mapping\Annotation\EncryptionKey这个注解表示这个列将包含用于加密数据的加密密钥。仅在使用受密码保护的密钥时必要
- @YWH\Encryptable\Mapping\Annotation\Encrypted这个注解表示这个列将被加密。可用的配置选项
- type数据类型。应该是有效的Doctrine类型之一。默认:string
关于设置加密密钥和加密数据列的说明
EncryptionKey和Encrypted列必须设置为字符串类型
/** * @var string * * @ORM\Column(name="encryption_key", type="text") * @YWH\EncryptionKey() */ private $encryptionKey; /** * @ORM\Column(name="encrypted_data", type="string") * @YWH\Encrypted() */ private $encryptedData;
<?php namespace Entity; use Doctrine\ORM\Mapping as ORM; use YWH\Encryptable\Mapping\Annotation as YWH; /** * @ORM\Entity * @YWH\Encryptable(usePassword=true) */ class Article { /** @ORM\Id @ORM\GeneratedValue @ORM\Column(type="integer") */ private $id; /** * @var string * * @ORM\Column(name="encryption_key", type="text") * @YWH\EncryptionKey() */ private $encryptionKey; /** * @ORM\Column(type="string", length=128) * @YWH\Encrypted() */ private $title; /** * @ORM\Column(name="date", type="string") * @YWH\Encrypted(type="datetime") */ private $date; public function getId() { return $this->id; } public function setEncryptionKey($key) { $this->encryptionKey = $key; } public function getEncryptionKey() { return $this->encryptionKey; } public function setTitle($title) { $this->title = $title; } public function getTitle() { return $this->title; } public function setDate(\DateTime $date) { $this->date = $date; } public function getDate() { return $this->date; } }