

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# CRYPTOGRAPHIC\$1HASH
<a name="recipe-actions.CRYPTOGRAPHIC_HASH"></a>

将算法应用于列中的哈希值。

**参数**
+ `sourceColumns`：现有列的数组。
+ `secretId`：Secrets Manager 密钥的 ARN。在散列消息认证码（HMAC）前缀算法中用于对源列进行哈希处理的密钥，或者 `databrew!default` 是 Secrets Manager 密钥的值的 base64 解码输出。
+ `secretVersion`：可选。默认为最新的密钥版本。
+ `entityTypeFilter`：可选的[实体类型](https://docs.aws.amazon.com/databrew/latest/dg/API_EntityDetectorConfiguration.html#databrew-Type-EntityDetectorConfiguration-EntityTypes)数组。可仅用于加密自由文本列中检测到的 PII。
+ `createSecretIfMissing` – 可选布尔值。如果为 true，将尝试代表调用者创建密钥。
+ `algorithm`：用于对数据进行哈希处理的算法。有效的枚举值： MD5、、、、HMAC\$1 SHA1、HMAC\$1 SHA256 SHA512、HMAC\$1、HMAC\$1 MD5、HMAC SHA1 \$1 SHA256 SHA512

  每个选项指的都是不同的哈希算法。那些带“HMAC”前缀的选项指的是密钥哈希算法，需要使用 `secretId` 参数。对于没有“HMAC”前缀的选项，不需要使用 `secretId` 参数。

  如果您不提供哈希算法，则该服务默认为 “HMAC\$1SHA256”。

```
{
   "sourceColumns": ["phonenumber"],   
   "secretId": "arn:aws:secretsmanager:us-east-1:012345678901:secret:mysecret",
   "entityTypeFilter": ["USA_ALL"]
}
```

在交互式体验中工作时，除了项目的角色外，控制台用户还必须对提供的 Secrets Manager 密钥拥有 `secretsmanager:GetSecretValue` 权限。

**政策示例：**

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:012345678901:secret:mysecret"
            ]
        }
    ]
}
```

------

您也可以选择使用 DataBrew创建的默认密钥，方法是将参数作为 secretID 传递，将参数传递`databrew!default`为 true。`createSecretIfMissing`我们不建议将此方法用于生产。拥有该**AwsGlueDataBrewFullAccessPolicy**角色的任何人都可以使用默认密钥。