triggerfish/doctrine-encrypt-bundle

Symfony 4 扩展包,允许使用某些加密算法在数据库中加密数据

安装次数: 38

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 226

类型:symfony-bundle

v2.7.3 2018-04-16 14:50 UTC

README

#DoctrineEncryptBundle

该扩展包允许创建具有加密字段的 doctrine 实体,这些字段将使用数据库中的某些加密算法进行保护,并且对于开发者来说非常清晰,因为扩展包使用了 doctrine 生命周期事件

这是从 vmelnik-ukrain 创建的原始扩展包的分支,他可以在这里找到: vmelnik-ukraine/DoctrineEncryptBundle

我改进了一些事情,更好地利用了 doctrine 事件,并且它支持懒加载(关系)!这将成为一个长期项目,我们将长期支持它和向后兼容。我们在所有的 symfony2 项目中使用这个扩展包。更多关于我们的信息可以在我们的网站上找到。 Ambta.com

###具体功能

允许你在每个字符串属性上添加 @Encrypt 注解

/**
 * @Encrypt
 */
protected $username;

该扩展包使用 doctrine 的生命周期事件在插入数据库时加密数据,在加载到实体管理器时解密数据。目前它只能加密字符串值,数字和其他字段将在开发过程中添加。

###加密数据库的优点和缺点

####优点

  • 信息存储安全
  • 无需担心在其他位置保存备份
  • 对于管理数据库的员工来说不可读

####缺点

  • 无法对加密数据使用 ORDER BY
  • 在 SELECT WHERE 语句中,WHERE 条件值也必须加密
  • 如果你丢失了密钥,你就会丢失数据(在安全位置备份密钥)

###文档

该扩展包负责数据库中数据的加密/解密。所有的加密/解密工作都在服务器端完成。

以下文档可用:

###许可证

该扩展包受 MIT 许可证的约束。请参阅扩展包中的完整许可证。

###版本

我使用语义版本控制,如下所示 这里

###待办事项

以下事项将按顺序完成:

  1. 代码审查 + 修复/改进和内联文档(2.1.1)
  2. 添加对其他 doctrine 关系的支持(多对多,多对一)(2.2)
  3. 重新创建文档(2.3)
  4. 创建示例代码(2.3)
  5. 创建加密未加密数据库和相反的函数(控制台命令,迁移,更改密钥等)(2.4)
  6. 寻找自动加密查询参数的可能性(2.5)
  7. 寻找覆盖 findOneBy 以自动加密参数的可能性(2.6)
  8. 添加通过引用其他属性作为密钥加密数据的功能(使用用户密钥等特定于用户的数据)(2.7)
  9. 为所有数据类型添加格式保留加密 格式保留加密(3.0)