

文档 AWS SDK 示例 GitHub 存储库中还有更多 [S AWS DK 示例](https://github.com/awsdocs/aws-doc-sdk-examples)。

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

# AWS Payment Cryptography 使用数据平面示例 AWS CLI
<a name="cli_2_payment-cryptography-data_code_examples"></a>

以下代码示例向您展示了如何使用 with D AWS Payment Cryptography ata Plane 来执行操作和实现常见场景。 AWS Command Line Interface 

*操作*是大型程序的代码摘录，必须在上下文中运行。您可以通过操作了解如何调用单个服务函数，还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接，您可以从中找到有关如何在上下文中设置和运行代码的说明。

**Topics**
+ [操作](#actions)

## 操作
<a name="actions"></a>

### `decrypt-data`
<a name="payment-cryptography-data_DecryptData_cli_2_topic"></a>

以下代码示例演示了如何使用 `decrypt-data`。

**AWS CLI**  
**解密加密文字**  
以下 `decrypt-data` 示例使用对称密钥解密加密文字数据。要执行此操作，密钥必须将 `KeyModesOfUse` 设置为 `Decrypt`，将 `KeyUsage` 设置为 `TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY`。  

```
aws payment-cryptography-data decrypt-data \
    --key-identifier arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h \
    --cipher-text 33612AB9D6929C3A828EB6030082B2BD \
    --decryption-attributes 'Symmetric={Mode=CBC}'
```
输出：  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h",
    "KeyCheckValue": "71D7AE",
    "PlainText": "31323334313233343132333431323334"
}
```
有关更多信息，请参阅《AWS 支付加密**用户指南》中的[解密数据](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/decrypt-data.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[DecryptData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/decrypt-data.html)*中的。

### `encrypt-data`
<a name="payment-cryptography-data_EncryptData_cli_2_topic"></a>

以下代码示例演示了如何使用 `encrypt-data`。

**AWS CLI**  
**加密数据**  
以下 `encrypt-data` 示例使用对称密钥对纯文本数据进行加密。要执行此操作，密钥必须将 `KeyModesOfUse` 设置为 `Encrypt`，将 `KeyUsage` 设置为 `TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY`。  

```
aws payment-cryptography-data encrypt-data \
    --key-identifier arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h \
    --plain-text 31323334313233343132333431323334 \
    --encryption-attributes 'Symmetric={Mode=CBC}'
```
输出：  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h",
    "KeyCheckValue": "71D7AE",
    "CipherText": "33612AB9D6929C3A828EB6030082B2BD"
}
```
有关更多信息，请参阅《AWS 支付加密用户指南》中的**[加密数据](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/encrypt-data.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[EncryptData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/encrypt-data.html)*中的。

### `generate-card-validation-data`
<a name="payment-cryptography-data_GenerateCardValidationData_cli_2_topic"></a>

以下代码示例演示了如何使用 `generate-card-validation-data`。

**AWS CLI**  
**生成 CVV**  
以下`generate-card-validation-data`示例生成 CVV/ CVV2。  

```
aws payment-cryptography-data generate-card-validation-data \
    --key-identifier arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h \
    --primary-account-number=171234567890123 \
    --generation-attributes CardVerificationValue2={CardExpiryDate=0123}
```
输出：  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h",
    "KeyCheckValue": "CADDA1",
    "ValidationData": "801"
}
```
有关更多信息，请参阅《AWS 支付加密用户指南**》中的[生成卡数据](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/generate-card-data.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GenerateCardValidationData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/generate-card-validation-data.html)*中的。

### `generate-mac`
<a name="payment-cryptography-data_GenerateMac_cli_2_topic"></a>

以下代码示例演示了如何使用 `generate-mac`。

**AWS CLI**  
**生成 MAC**  
以下`generate-card-validation-data`示例使用算法 HMAC\$1 和 HMAC 加密密钥生成用于卡数据身份验证的基于哈希的消息身份验证码 (HM SHA256 AC)。密钥必须将 `KeyUsage` 设置为 `TR31_M7_HMAC_KEY`，并将 `KeyModesOfUse` 设置为 `Generate`。  

```
aws payment-cryptography-data generate-mac \
    --key-identifier arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h \
    --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" \
    --generation-attributes Algorithm=HMAC_SHA256
```
输出：  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h,
    "KeyCheckValue": "2976E7",
    "Mac": "ED87F26E961C6D0DDB78DA5038AA2BDDEA0DCE03E5B5E96BDDD494F4A7AA470C"
}
```
有关更多信息，请参阅《AWS 支付加密用户指南**》中的[生成 MAC](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/generate-mac.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GenerateMac](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/generate-mac.html)*中的。

### `generate-pin-data`
<a name="payment-cryptography-data_GeneratePinData_cli_2_topic"></a>

以下代码示例演示了如何使用 `generate-pin-data`。

**AWS CLI**  
**生成 PIN**  
以下 `generate-card-validation-data` 示例使用 Visa PIN 方案生成一个新的随机 PIN 码。  

```
aws payment-cryptography-data generate-pin-data \
    --generation-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2 \
    --encryption-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt \
    --primary-account-number 171234567890123 \
    --pin-block-format ISO_FORMAT_0 \
    --generation-attributes VisaPin={PinVerificationKeyIndex=1}
```
输出：  

```
{
    "GenerationKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2",
    "GenerationKeyCheckValue": "7F2363",
    "EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt",
    "EncryptionKeyCheckValue": "7CC9E2",
    "EncryptedPinBlock": "AC17DC148BDA645E",
    "PinData": {
        "VerificationValue": "5507"
    }
}
```
有关更多信息，请参阅《AWS 支付加密用户指南》**中的[生成 PIN 数据](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/generate-pin-data.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[GeneratePinData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/generate-pin-data.html)*中的。

### `re-encrypt-data`
<a name="payment-cryptography-data_ReEncryptData_cli_2_topic"></a>

以下代码示例演示了如何使用 `re-encrypt-data`。

**AWS CLI**  
**使用不同的密钥重新加密数据**  
以下 `re-encrypt-data` 示例对使用 AES 对称密钥加密的密码文本进行解密，并使用每笔交易派生唯一密钥（DUKPT）密钥对其进行重新加密。  

```
aws payment-cryptography-data re-encrypt-data \
    --incoming-key-identifier arn:aws:payment-cryptography:us-west-2:111122223333:key/hyvv7ymboitd4vfy \
    --outgoing-key-identifier arn:aws:payment-cryptography:us-west-2:111122223333:key/jl6ythkcvzesbxen \
    --cipher-text 4D2B0BDBA192D5AEFEAA5B3EC28E4A65383C313FFA25140101560F75FE1B99F27192A90980AB9334 \
    --incoming-encryption-attributes "Dukpt={Mode=ECB,KeySerialNumber=0123456789111111}" \
    --outgoing-encryption-attributes '{"Symmetric": {"Mode": "ECB"}}'
```
输出：  

```
{
    "CipherText": "F94959DA30EEFF0C035483C6067667CF6796E3C1AD28C2B61F9CFEB772A8DD41C0D6822931E0D3B1",
    "KeyArn": "arn:aws:payment-cryptography:us-west-2:111122223333:key/jl6ythkcvzesbxen",
    "KeyCheckValue": "2E8CD9"
}
```
有关更多信息，请参阅《AWS 支付加密用户指南》中的[加密**和解密数据](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops.encryptdecrypt.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[ReEncryptData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/re-encrypt-data.html)*中的。

### `translate-pin-data`
<a name="payment-cryptography-data_TranslatePinData_cli_2_topic"></a>

以下代码示例演示了如何使用 `translate-pin-data`。

**AWS CLI**  
**转换 PIN 数据**  
以下 `translate-pin-data` 示例将使用 ISO 0 PIN 块将 PIN 从 PEK TDES 加密转换为使用 DUKPT 算法的 AES ISO 4 PIN 块。  

```
aws payment-cryptography-data translate-pin-data \
    --encrypted-pin-block "AC17DC148BDA645E" \
    --incoming-translation-attributes=IsoFormat0='{PrimaryAccountNumber=171234567890123}' \
    --incoming-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt \
    --outgoing-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/4pmyquwjs3yj4vwe \
    --outgoing-translation-attributes IsoFormat4="{PrimaryAccountNumber=171234567890123}" \
    --outgoing-dukpt-attributes KeySerialNumber="FFFF9876543210E00008"
```
输出：  

```
{
    "PinBlock": "1F4209C670E49F83E75CC72E81B787D9",
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt
    "KeyCheckValue": "7CC9E2"
}
```
有关更多信息，请参阅《AWS 支付加密用户指南》**中的[转换 PIN 数据](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/translate-pin-data.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[TranslatePinData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/translate-pin-data.html)*中的。

### `verify-auth-request-cryptogram`
<a name="payment-cryptography-data_VerifyAuthRequestCryptogram_cli_2_topic"></a>

以下代码示例演示了如何使用 `verify-auth-request-cryptogram`。

**AWS CLI**  
**验证身份验证请求**  
以下 `verify-auth-request-cryptogram` 示例验证授权请求密码（ARQC）。  

```
aws payment-cryptography-data verify-auth-request-cryptogram \
    --auth-request-cryptogram F6E1BD1E6037FB3E \
    --auth-response-attributes '{"ArpcMethod1": {"AuthResponseCode": "1111"}}' \
    --key-identifier arn:aws:payment-cryptography:us-west-2:111122223333:key/pboipdfzd4mdklya \
    --major-key-derivation-mode "EMV_OPTION_A" \
    --session-key-derivation-attributes '{"EmvCommon": {"ApplicationTransactionCounter": "1234","PanSequenceNumber": "01","PrimaryAccountNumber": "471234567890123"}}' \
    --transaction-data "123456789ABCDEF"
```
输出：  

```
{
    "AuthResponseValue": "D899B8C6FBF971AA",
    "KeyArn": "arn:aws:payment-cryptography:us-west-2:111122223333:key/pboipdfzd4mdklya",
    "KeyCheckValue": "985792"
}
```
有关更多信息，请参阅《AWS 支付**加密用户指南》中的[验证身份验证请求（ARQC）密码](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/data-operations.verifyauthrequestcryptogram.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[VerifyAuthRequestCryptogram](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/verify-auth-request-cryptogram.html)*中的。

### `verify-card-validation-data`
<a name="payment-cryptography-data_VerifyCardValidationData_cli_2_topic"></a>

以下代码示例演示了如何使用 `verify-card-validation-data`。

**AWS CLI**  
**验证 CVV**  
以下`verify-card-validation-data`示例验证了 PAN 的 CVV/ CVV2 。  

```
aws payment-cryptography-data verify-card-validation-data \
    --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \
    --primary-account-number=171234567890123 \
    --verification-attributes CardVerificationValue2={CardExpiryDate=0123} \
    --validation-data 801
```
输出：  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "KeyCheckValue": "CADDA1"
}
```
有关更多信息，请参阅《AWS 支付加密用户指南**》中的[验证卡数据](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/verify-card-data.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[VerifyCardValidationData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/verify-card-validation-data.html)*中的。

### `verify-mac`
<a name="payment-cryptography-data_VerifyMac_cli_2_topic"></a>

以下代码示例演示了如何使用 `verify-mac`。

**AWS CLI**  
**验证 MAC**  
以下`verify-mac`示例使用算法 HMAC\$1 和 HMAC 加密密钥验证用于卡数据身份验证的基于哈希的消息身份验证码 (HM SHA256 AC)。  

```
aws payment-cryptography-data verify-mac \
    --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6 \
    --message-data "3b343038383439303031303733393431353d32343038323236303030373030303f33" \
    --verification-attributes='Algorithm=HMAC_SHA256' \
    --mac ED87F26E961C6D0DDB78DA5038AA2BDDEA0DCE03E5B5E96BDDD494F4A7AA470C
```
输出：  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6,
    "KeyCheckValue": "2976E7",
}
```
有关更多信息，请参阅《AWS 支付加密用户指南**》中的[验证 MAC](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/verify-mac.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[VerifyMac](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/verify-mac.html)*中的。

### `verify-pin-data`
<a name="payment-cryptography-data_VerifyPinData_cli_2_topic"></a>

以下代码示例演示了如何使用 `verify-pin-data`。

**AWS CLI**  
**验证 PIN**  
以下 `verify-pin-data` 示例验证了 PAN 的 PIN。  

```
aws payment-cryptography-data verify-pin-data \
    --verification-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2 \
    --encryption-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt \
    --primary-account-number 171234567890123 \
    --pin-block-format ISO_FORMAT_0 \
    --verification-attributes VisaPin="{PinVerificationKeyIndex=1,VerificationValue=5507}" \
    --encrypted-pin-block AC17DC148BDA645E
```
输出：  

```
{
    "VerificationKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2",
    "VerificationKeyCheckValue": "7F2363",
    "EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt",
    "EncryptionKeyCheckValue": "7CC9E2",
}
```
有关更多信息，请参阅《AWS 支付加密用户指南**》中的[验证 PIN 数据](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/verify-pin-data.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[VerifyPinData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/verify-pin-data.html)*中的。