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