

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

# 使用动态按键
<a name="use-cases-acquirers-dynamickeys"></a>

 动态密钥允许将一次性或有限使用的密钥用于加密操作，例如`[EncryptData](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_EncryptData.html)`。当密钥材料频繁轮换（例如在每笔信用卡交易中），并且希望避免将密钥材料导入服务时，可以使用此流程。短期密钥可用作 [SoftPOS/M](terminology.md#terms.mpoc) POC 或其他解决方案的一部分。

**注意**  
 这可以代替使用 Payment AWS Cryptography 的典型流程，即创建加密密钥或将其导入服务，并使用密钥别名或密钥 arn 指定密钥。

以下操作支持动态密钥：
+ EncryptData
+ DecryptData
+ ReEncryptData
+ TranslatePin

## 解密数据
<a name="use-case-acquirers-dynamickeys.examples.decryptdata"></a>

 以下示例显示了如何使用动态密钥和 decrypt 命令。在本例中，密钥标识符是保护解密密钥的包装密钥 (KEK)（在 TR-31 格式的封装密钥参数中提供）。封装后的密钥必须是 D0 的密钥用途，可以与 decrypt 命令一起使用，同时还有 B 或 D 的使用模式。

**Example**  

```
$ aws payment-cryptography-data decrypt-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza --cipher-text 1234123412341234123412341234123A --decryption-attributes 'Symmetric={Mode=CBC,InitializationVector=1234123412341234}'   --wrapped-key WrappedKeyMaterial={"Tr31KeyBlock"="D0112D0TN00E0000B05A6E82D7FC68B95C84306634B0000DA4701BE9BCA318B3A30A400B059FD4A8DE19924A9D3EE459F24FDE680F8E4A40"}
```

```
{
   "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza",
   "KeyCheckValue": "0A3674",
   "PlainText": "2E138A746A0032023BEF5B85BA5060BA"
}
```

## 翻译别针
<a name="use-case-acquirers-dynamickeys.examples.translatepin"></a>

 以下示例演示如何使用动态键和 translate pin 命令从动态密钥转换为半静态收单机构工作密钥 (AWK)。在本例中，传入的密钥标识符是包装密钥 (KEK)，用于保护以 TR-31 格式提供的动态密码加密密钥 (PEK)。封装后的密钥应与 B 或 D 的使用模式`P0`一起作为密钥用途。传出的密钥标识符是 encrypt=True、wrap=True 的密钥类型`TR31_P0_PIN_ENCRYPTION_KEY`和使用模式 

**Example**  

```
$ aws payment-cryptography-data translate-pin-data --encrypted-pin-block "C7005A4C0FA23E02" --incoming-translation-attributes=IsoFormat0='{PrimaryAccountNumber=171234567890123}' --incoming-key-identifier alias/PARTNER1_KEK  --outgoing-key-identifier alias/ACQUIRER_AWK_PEK --outgoing-translation-attributes IsoFormat0="{PrimaryAccountNumber=171234567890123}"  --incoming-wrapped-key WrappedKeyMaterial={"Tr31KeyBlock"="D0112P0TB00S0000EB5D8E63076313162B04245C8CE351C956EA4A16CC32EB3FB61DE3FC75C751734B773F5B645943A854C65740738B8304"}
```

```
{
   "PinBlock": "2E66192BDA390C6F",
   "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza",
   "KeyCheckValue": "0A3674"
}
```