本主题介绍 Sensitive Data Protection 中提供的去标识化方法(或称转换)。
去标识化方法的类型
应根据要去标识化的数据种类以及对数据进行去标识化的目的来选择使用的去标识化转换。Sensitive Data Protection 支持的去标识化方法分为以下几大类别:
- 隐去:删除检测到的全部或部分敏感值。
- 替换:使用指定的代理值替换检测到的敏感值。
- 遮罩:使用指定的代理字符(例如井号 (#) 或星号 (*))替换敏感值中的若干字符。
- 基于加密的令牌化:使用加密密钥加密原始敏感数据值。Sensitive Data Protection 支持多种类型的令牌化,包括可以逆转或“重标识”的转换。
- 分桶:使用某个范围或系列值替换敏感值来对其进行“泛化”处理。(例如,使用年龄范围来替换特定年龄值,或者使用“热”、“温”和“冷”替换相应范围内的温度值。)
- 日期偏移:将敏感日期值移动一段随机时间。
- 时间提取:提取或保留日期和时间值的指定部分。
本主题的其余部分将介绍各种不同类型的去标识化转换,并提供其使用示例。
转换方法
下表列出了 Sensitive Data Protection 提供的用于对敏感数据进行去标识化的转换方法:
| 转换 | 对象 | 说明 | 可以逆转1 | 参照完整性2 | 输入类型 |
|---|---|---|---|---|---|
| 遮盖 | RedactConfig |
通过删除值来进行遮盖。 | 不限 | ||
| 替换 | ReplaceValueConfig |
使用给定值替换每个输入值。 | 不限 | ||
| 替换为字典 | ReplaceDictionaryConfig
|
将输入值替换为从字词列表中随机选择的值。 | 不限 | ||
| 使用 infoType 替换 | ReplaceWithInfoTypeConfig |
将输入值替换为其 infoType 的名称。 | 不限 | ||
| 使用字符遮罩 | CharacterMaskConfig |
通过将给定数量的字符替换为所指定的固定字符,全部或部分遮盖字符串。 | 不限 | ||
| 通过将输入值替换为加密哈希实现假名化 | CryptoHashConfig |
将输入值替换为由给定数据加密密钥生成的 32 字节十六进制字符串。请参阅假名化概念文档了解详情。 | ✔ | 字符串或整数 | |
| 通过替换为加密保留格式令牌实现假名化 | CryptoReplaceFfxFpeConfig |
使用 FFX 运算模式的保留格式加密 (FPE) 将输入值替换为长度相同的令牌或代理值。这样就能在具有长度格式验证的系统中使用输出。这对于必须保留字符串长度的旧系统很有用。重要提示:对于长度不等或长度超过 32 个字节的输入,请使用 CryptoDeterministicConfig。
为确保安全,
美国国家标准与技术研究院建议遵循以下限制:
|
✔ | ✔ | 具有有限字符数或长度统一的字符串或整数。字母表必须至少包含 2 个字符,且不得超过 95 个字符。 |
| 通过替换为加密令牌实现假名化 | CryptoDeterministicConfig |
使用合成初始化矢量模式下的 AES (AES-SIV) 将输入值替换为长度相同的令牌或代理值。与保留格式令牌化不同,此转换方法对受支持的字符串字符集没有任何限制,为相同输入值的每个实例生成相同令牌,并在给定原始加密密钥的情况下使用代理来启用重标识。 | ✔ | ✔ | 不限 |
| 基于固定大小范围的分桶值 | FixedSizeBucketingConfig |
将输入值替换为输入值所在的分桶(或范围)的值。 | 不限 | ||
| 基于自定义大小范围的分桶值 | BucketingConfig |
根据用户可配置的范围和替换值将输入值替换为分桶值。 | 不限 | ||
| 日期偏移 | DateShiftConfig |
按随机天数偏移日期,可使同一上下文保持一致。 | ✔ 保留顺序和持续时间 |
日期/时间 | |
| 提取时间数据 | TimePartConfig |
提取或保留 Date、Timestamp 和 TimeOfDay 值的一部分。 |
日期/时间 |
脚注
content.reidentify 方法重新标识敏感数据。
隐去
如果只想从输入内容中移除敏感数据,Sensitive Data Protection 支持隐去转换(DLP API 中的 RedactConfig)。
例如,假设您要对所有 EMAIL_ADDRESS infoType 执行简单的隐去处理,且下列字符串已发送到 Sensitive Data Protection:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
返回的字符串如下:
My name is Alicia Abernathy, and my email address is .
多种语言的以下 JSON 示例和代码演示了如何构建 API 请求以及 DLP API 会返回哪些内容。
C#
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
REST
如需详细了解如何将 DLP API 与 JSON 配合使用,请参阅 JSON 快速入门。
HTTP 方法和网址
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
将 PROJECT_ID 替换为项目 ID。
JSON 输入
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"redactConfig":{
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
JSON 输出
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is ."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"redactConfig":{
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
替换
替换转换使用给定令牌值或其 infoType 的名称替换每个输入值。
基本替换
基本替换转换(DLP API 中的 ReplaceValueConfig)会使用您指定的值替换检测到的敏感数据值。例如,假设您已让 Sensitive Data Protection 使用“[fake@example.com]”替换所有检测到的 EMAIL_ADDRESS infoType,且下列字符串已发送到 Sensitive Data Protection:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
返回的字符串如下:
My name is Alicia Abernathy, and my email address is [fake@example.com].
多种语言的以下 JSON 示例和代码演示了如何构建 API 请求以及 DLP API 会返回哪些内容。
C#
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
REST
如需详细了解如何将 DLP API 与 JSON 配合使用,请参阅 JSON 快速入门。
HTTP 方法和网址
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
将 PROJECT_ID 替换为项目 ID。
JSON 输入
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"replaceConfig":{
"newValue":{
"stringValue":"[email-address]"
}
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
JSON 输出
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is [email-address]."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"replaceConfig":{
"newValue":{
"stringValue":"[email-address]"
}
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
字典替换
字典替换 (ReplaceDictionaryConfig) 会将检测到的每条敏感数据替换为 Sensitive Data Protection 从您提供的字词列表中随机选择的值。如果您想使用真实的替代值,此转换方法会很有用。
假设您希望 Sensitive Data Protection 检测电子邮件地址,并使用三个代理电子邮件地址之一替换每个检测到的值。
您将以下输入字符串以及代理电子邮件地址列表发送给 Sensitive Data Protection:
输入字符串
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
字词表
- izumi@example.com
- alex@example.com
- tal@example.com
返回的字符串可以是以下任一值:
My name is Alicia Abernathy, and my email address is izumi@example.com.
My name is Alicia Abernathy, and my email address is alex@example.com.
My name is Alicia Abernathy, and my email address is tal@example.com.
下面的 JSON 示例演示了如何创建 API 请求以及 DLP API 会返回哪些内容。
要详细了解如何将 DLP API 与 JSON 结合使用,请参阅 JSON 快速入门。
HTTP 方法和网址
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
将 PROJECT_ID 替换为项目 ID。
JSON 输入
{
"item": {
"value": "My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig": {
"infoTypeTransformations": {
"transformations": [
{
"infoTypes": [
{
"name": "EMAIL_ADDRESS"
}
],
"primitiveTransformation": {
"replaceDictionaryConfig": {
"wordList": {
"words": [
"izumi@example.com",
"alex@example.com",
"tal@example.com"
]
}
}
}
}
]
}
},
"inspectConfig": {
"infoTypes": [
{
"name": "EMAIL_ADDRESS"
}
]
}
}
JSON 输出
{
"item": {
"value": "My name is Alicia Abernathy, and my email address is izumi@example.com."
},
"overview": {
"transformedBytes": "22",
"transformationSummaries": [
{
"infoType": {
"name": "EMAIL_ADDRESS"
},
"transformation": {
"replaceDictionaryConfig": {
"wordList": {
"words": [
"izumi@example.com",
"alex@example.com",
"tal@example.com"
]
}
}
},
"results": [
{
"count": "1",
"code": "SUCCESS"
}
],
"transformedBytes": "22"
}
]
}
}
C#
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
infoType 替换
您还可以指定 infoType 替换(DLP API 中的 ReplaceWithInfoTypeConfig)。此转换与基本替换转换的作用相同,但它使用检测到的值的 infoType 替换检测到的每个敏感数据值。
例如,假设您已让 Sensitive Data Protection 检测电子邮件地址和姓氏,并使用值的 infoType 替换每个检测到的值。您将以下字符串发送到 Sensitive Data Protection:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
返回的字符串如下:
My name is Alicia LAST_NAME, and my email address is EMAIL_ADDRESS.
遮盖
您可以将 Sensitive Data Protection 配置为使用固定的单个遮盖字符(例如星号 (*) 或井号 (#))替换每个字符,以完全或部分遮盖检测到的敏感值(DLP API 中的 CharacterMaskConfig)。可以从字符串的开头或结尾开始遮盖。此转换也适用于数字类型,例如长整数。
Sensitive Data Protection 的遮盖转换提供了如下可以指定的选项:
- 遮盖字符(DLP API 中的
maskingCharacter参数):用于遮盖敏感值中每个字符的字符。例如,您可以指定用星号 (*) 或美元符号 ($) 来遮盖信用卡号中的一连串数字。 - 需要遮盖的字符数 (
numberToMask):如果未指定此值,将遮盖所有字符。 - 是否逆转顺序 (
reverseOrder):是否按反向顺序遮盖字符。如果逆转顺序,将从匹配值的末尾朝着开头遮盖值中的字符。 - 需要忽略的字符 (
charactersToIgnore):遮盖值时要跳过的一个或多个字符。例如,您可以让 Sensitive Data Protection 在遮盖电话号码时保留连字符。您还可以指定一组要在遮盖时忽略的常见字符 (CharsToIgnore)。
假设您将以下字符串发送到 Sensitive Data Protection 并指示其对电子邮件地址使用字符遮盖转换:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
在将遮盖字符发送到“#”,要忽略的字符设置为公共字符集,其他字符设置为默认设置后,Sensitive Data Protection 返回以下内容:
My name is Alicia Abernathy, and my email address is ##########@#######.###.
以下 JSON 和代码示例演示了遮盖转换的工作原理。
Java
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
C#
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
REST
如需详细了解如何将 DLP API 与 JSON 配合使用,请参阅 JSON 快速入门。
HTTP 方法和网址
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
将 PROJECT_ID 替换为项目 ID。
JSON 输入
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"characterMaskConfig":{
"maskingCharacter":"#",
"reverseOrder":false,
"charactersToIgnore":[
{
"charactersToSkip":".@"
}
]
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
JSON 输出
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is ##########@#######.###."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"characterMaskConfig":{
"maskingCharacter":"#",
"charactersToIgnore":[
{
"charactersToSkip":".@"
}
]
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
基于加密的令牌化转换
基于加密的令牌化(也称为“假名化”)转换是指将原始敏感数据值替换为加密值的去标识化方法。Sensitive Data Protection 支持以下类型的令牌化,包括可以逆转并允许重标识的转换:
- 加密哈希:在给定
CryptoKey的情况下,Sensitive Data Protection 使用基于 SHA-256 的消息身份验证代码 (HMAC-SHA-256),然后将输入值替换为以 base64 编码的哈希值。与其他类型的基于加密的转换不同,此类转换不可逆。 - 保留格式加密:使用 FFX 运算模式的保留格式加密 (FPE) 生成令牌替换输入值。此转换方法会生成一个令牌,该令牌被限制为与输入值的字母系统相同,并且与输入值的长度相同。FPE 还支持在给定原始加密密钥的情况下进行重标识。
- 确定性加密:使用合成初始化矢量模式下的 AES (AES-SIV) 生成令牌替换输入值。此转换方法对受支持的字符串字符集没有任何限制,为相同输入值的每个实例生成相同令牌,并使用代理在给定原始加密密钥的情况下启用重标识。
加密哈希
加密哈希转换(DLP API 中的 CryptoHashConfig)会获取输入值(Sensitive Data Protection 检测到的敏感数据)并将其替换为哈希值。哈希值是通过利用 CryptoKey 对输入值应用基于 SHA-256 的消息身份验证代码 (HMAC-SHA-256) 生成的。
Sensitive Data Protection 会输出以 base64 编码表示的哈希输入值来替换原始值。
在使用加密哈希技术转换之前,需要考虑以下方面:
- 输入值使用哈希处理,而不是加密。
- 此转换无法逆转。也就是说,即使给定转换的哈希输出值和原始密钥,也无法恢复原始值。
- 目前,只能对字符串和整数值进行哈希处理。
- 转换的哈希输出始终具有相同长度,具体取决于密钥的大小。例如,如果您对 10 位电话号码使用加密哈希技术转换,每个电话号码都将被替换为固定长度的 base64 编码的哈希值。
保留格式加密
保留格式加密 (FPE) 转换方法(DLP API 中的 CryptoReplaceFfxFpeConfig)会获取输入值(Sensitive Data Protection 检测到的敏感数据),使用 FFX 模式的保留格式加密和 CryptoKey 对其进行加密,然后使用加密值(即令牌)替换原始值。
输入值需满足以下条件:
- 必须至少具有两个字符(或为空字符串)。
- 必须是 ASCII 编码字符。
- 由按“字母表”指定的字符组成,“字母表”是指允许在输入值中使用的 2 到 95 个字符的集合。如需了解详情,请参阅
CryptoReplaceFfxFpeConfig中的字母表字段。
生成的令牌:
- 是加密的输入值。
- 加密后保留输入值的字符集(“字母表”)和长度。
- 使用指定加密密钥通过 FFX 模式的保留格式加密计算得出。
- 不一定是唯一的,因为每个相同的输入值在去标识化后都得到相同的令牌。这实现了参照完整性,可以更高效地搜索去标识化数据。 如上下文中所述,您可以使用上下文“调整”来更改此行为。
如果源内容中的一个输入值存在多个实例,则每个实例都将被去标识化为相同令牌。FPE 会保留长度和字母表空间(字符集),字母表空间被限制为 95 个字符。您可以使用上下文“调整”来更改此行为,这可以提高安全性。通过向转换添加上下文调整,Sensitive Data Protection 可以将相同输入值的多个实例去标识化为不同令牌。如果您不需要保留原始值的长度和字母表空间,请使用确定性加密,如下所述。
Sensitive Data Protection 使用加密密钥计算替换令牌。 您可通过下述三种方式之一提供此密钥:
- 将其嵌入 API 请求但不加密。不过,我们不建议您这样做。
- 请求 Sensitive Data Protection 生成该密钥。
- 将其嵌入 API 请求并加密。
如果您选择将密钥嵌入 API 请求中,则需要使用 Cloud Key Management Service (Cloud KMS) 密钥创建密钥并对其进行封装(加密)。如需了解详情,请参阅创建封装的密钥。返回的值默认为一个 base64 编码的字符串。如需在 Sensitive Data Protection 中设置此值,必须将其解码为字节字符串。以下代码段重点介绍了如何使用多种语言执行此操作。 在这些代码段之后,还提供了端到端示例。
Java
KmsWrappedCryptoKey.newBuilder()
.setWrappedKey(ByteString.copyFrom(BaseEncoding.base64().decode(wrappedKey)))
Python
# The wrapped key is base64-encoded, but the library expects a binary
# string, so decode it here.
import base64
wrapped_key = base64.b64decode(wrapped_key)
PHP
// Create the wrapped crypto key configuration object
$kmsWrappedCryptoKey = (new KmsWrappedCryptoKey())
->setWrappedKey(base64_decode($wrappedKey))
->setCryptoKeyName($keyName);
C#
WrappedKey = ByteString.FromBase64(wrappedKey)
如需详细了解如何使用 Cloud KMS 加密和解密数据,请参阅加密和解密数据。
保留格式加密示例:去标识化
此示例使用 CryptoReplaceFfxFpeConfig 转换方法来对敏感数据进行去标识化。如需了解详情,请参阅本页面上的格式保留加密。
Java
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
C#
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
保留格式加密示例:使用代理类型的去标识化
此示例使用 CryptoReplaceFfxFpeConfig 转换方法来对敏感数据进行去标识化。如需了解详情,请参阅本页面上的格式保留加密。
Go
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
C#
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
保留格式加密示例:对表格中的敏感数据进行去标识化处理
此示例使用 CryptoReplaceFfxFpeConfig 转换方法来对表中的敏感数据进行去标识化。如需了解详情,请参阅本页面上的格式保留加密。
C#
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用 Sensitive Data Protection 客户端库,请参阅 Sensitive Data Protection 客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。