在用加密
概述
您可以使用MongoDB PHP库通过一组称为 在用加密 的功能来加密特定文档字段。在用加密允许您的应用程序在将数据发送到MongoDB之前对其进行加密,并查询具有加密字段的文档。
使用中的加密可以在数据发送到MongoDB或在加密数据库中时防止未经授权的用户查看明文数据。要在一个应用程序中启用使用中的加密并授权其解密数据,您必须创建只有您的应用程序可以访问的加密密钥。只有有权访问您的加密密钥的应用程序才能访问解密后的明文数据。如果攻击者获取对数据库的访问权限,他们将只能看到加密的密文数据,因为他们无法访问加密密钥。
您可以使用使用中的加密来加密MongoDB文档中包含以下类型敏感数据的字段
信用卡号码
地址
健康信息
财务信息
任何其他敏感或个人可识别信息(PII)
MongoDB提供以下功能以启用使用中的加密
可查询加密
可查询加密是使用中的加密的下一代功能,最初在MongoDB服务器6.0版本中以预览功能的形式推出,在MongoDB 7.0中作为一般可用(GA)功能推出。可查询加密支持在加密字段中执行等于搜索并唯一加密每个值。
重要
预览功能与MongoDB 7.0不兼容
MongoDB 6.0中可查询加密的实现与MongoDB 7.0中引入的GA版本不兼容。可查询加密预览功能不再受支持。
有关可查询加密的更多信息,请参阅MongoDB服务器手册中的可查询加密。
客户端字段级加密
客户端字段级加密(CSFLE)自MongoDB服务器版本4.2引入,支持对加密字段进行等值搜索。CSFLE与可查询加密不同之处在于,您可以选择确定性的或随机的加密算法来加密字段。在使用CSFLE时,您只能查询使用确定性加密算法的加密字段。当您在CSFLE中使用随机加密算法加密字段时,它们可以被解密,但您不能对这些字段执行等值查询。当您使用可查询加密时,您不能指定加密算法,但可以查询所有加密字段。
当您进行确定性加密时,相同的输入值会产生相同的输出值。虽然确定性加密允许您对那些加密字段执行查询,但低基数的加密数据容易受到频率分析的破解。
有关CSFLE的更多信息,请参阅MongoDB服务器手册中的CSFLE。