egsys-dev / doctrine-encrypt
该包通过生命周期事件加密和解密Doctrine字段。
1.2
2019-09-15 18:44 UTC
Requires
- php: >=7.1
- ext-openssl: *
- doctrine/orm: ~2.5
Requires (Dev)
- phpunit/phpunit: ^7
This package is not auto-updated.
Last update: 2024-09-24 17:50:01 UTC
README
此仓库基于
https://github.com/nepda/doctrine-encrypt
该包通过生命周期事件加密和解密Doctrine字段。Doctrine Encrypt包的此版本具有以下特性
- 高级注解解析和缓存,使用Doctrine内置库以获得更好的性能
- 完全透明的字段加密:值只在数据库中加密,永远不会在值中加密
- 单元测试
测试
当前测试运行在PHP 7.1,7.2上
安装
在 compose.json 中添加
"repositories": [
{
"type": "vcs",
"url": "git@github.com:egsys-dev/doctrine-encrypt.git"
}
]
composer require egsys-dev/doctrine-encrypt:dev-master
手动
将事件订阅者添加到实体管理器的イベント管理器中。假设 $em
是您配置的实体管理器
<?php $subscriber = new DoctrineEncryptSubscriber( new \Doctrine\Common\Annotations\AnnotationReader, new \DoctrineEncrypt\Encryptors\OpenSslEncryptor("contentPrivateKeyRSA2048Generated", "contentPublicKey2048Generated", "passwordKeyRsa", "ivBase64") ); $eventManager = $em->getEventManager(); $eventManager->addEventSubscriber($encrypt_subscriber);
使用方法
<?php namespace Your\CoolNamespace; use Doctrine\ORM\Mapping as ORM; use DoctrineEncrypt\Configuration\Encrypted; /** * @ORM\Entity */ class Entity { /** * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") * @ORM\Column(type="integer") * @var int */ protected $id; /** * @ORM\Column(type="text") * @Encrypted * @var string */ protected $secret_data; }
许可证
此包采用MIT许可证。请参阅包中的完整许可证