文档菜单

文档首页开发应用程序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

← 企业身份验证机制