

文件 AWS 開發套件範例 GitHub 儲存庫中有更多可用的 [AWS SDK 範例](https://github.com/awsdocs/aws-doc-sdk-examples)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS Payment Cryptography 使用 的資料平面範例 AWS CLI
<a name="cli_2_payment-cryptography-data_code_examples"></a>

下列程式碼範例示範如何使用 AWS Command Line Interface 搭配 AWS Payment Cryptography 資料平面來執行動作和實作常見案例。

*Actions* 是大型程式的程式碼摘錄，必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數，但您可以在其相關情境中查看內容中的動作。

每個範例均包含完整原始碼的連結，您可在連結中找到如何設定和執行內容中程式碼的相關指示。

**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 Payment Cryptography 使用者指南》**中的[解密資料](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 Payment Cryptography 使用者指南》**中的[加密資料](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 Payment Cryptography 使用者指南》**中的[產生卡片資料](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\$1SHA256 和 HMAC 加密金鑰，為卡片資料身分驗證產生雜湊訊息驗證碼 (HMAC)。金鑰必須將 `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 Payment Cryptography 使用者指南》**中的[產生 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 Payment Cryptography 使用者指南》**中的[產生 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 Payment Cryptography 使用者指南》**中的[加密和解密資料](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` 範例會使用 DUKPT 演算法，將 PIN 從使用 ISO 0 PIN 區塊的 PEK TDES 加密轉換為 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 Payment Cryptography 使用者指南》**中的[轉譯 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 Payment Cryptography 使用者指南》**中的[確認身分驗證請求 (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 Payment Cryptography 使用者指南》**中的[確認卡片資料](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\$1SHA256 和 HMAC 加密金鑰，為卡片資料身分驗證確認雜湊訊息驗證碼 (HMAC)。  

```
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 Payment Cryptography 使用者指南》**中的[確認 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 Payment Cryptography 使用者指南》**中的[確認 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)。