AWS Payment Cryptography 使用 的資料平面範例 AWS CLI - AWS SDK 程式碼範例

文件 AWS SDK AWS 範例 SDK 儲存庫中有更多可用的 GitHub 範例。

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

AWS Payment Cryptography 使用 的資料平面範例 AWS CLI

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

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會示範如何呼叫個別服務函數,但您可以在相關案例中查看內容中的動作。

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

主題

動作

下列程式碼範例示範如何使用 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 付款密碼編譯使用者指南中的解密資料

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DecryptData

下列程式碼範例示範如何使用 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 付款密碼編譯使用者指南中的加密資料

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 EncryptData

下列程式碼範例示範如何使用 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 付款密碼編譯使用者指南中的產生卡片資料

下列程式碼範例示範如何使用 generate-mac

AWS CLI

若要產生 MAC

下列generate-card-validation-data範例會使用演算法 HMAC_SHA256 和 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 付款密碼編譯使用者指南中的產生 MAC

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GenerateMac

下列程式碼範例示範如何使用 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 資料

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GeneratePinData

下列程式碼範例示範如何使用 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 付款密碼編譯使用者指南中的加密和解密資料

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ReEncryptData

下列程式碼範例示範如何使用 translate-pin-data

AWS CLI

若要轉換 PIN 資料

下列translate-pin-data範例會使用 PIN 0 PEK PIN 區塊將 ISO 從 TDES 加密轉譯為使用 AES 演算法的 DUKPT 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 資料

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 TranslatePinData

下列程式碼範例示範如何使用 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" }

如需詳細資訊,請參閱 付款密碼編譯使用者指南中的驗證身分驗證請求 (ARQC) 密碼編譯。 AWS

下列程式碼範例示範如何使用 verify-card-validation-data

AWS CLI

驗證 CVV

下列verify-card-validation-data範例會驗證 CVV/CVV2 的 PAN。

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 付款密碼編譯使用者指南中的驗證卡片資料

下列程式碼範例示範如何使用 verify-mac

AWS CLI

驗證 MAC

下列verify-mac範例會使用演算法 HMAC_SHA256 和 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 付款密碼編譯使用者指南中的驗證 MAC

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 VerifyMac

下列程式碼範例示範如何使用 verify-pin-data

AWS CLI

驗證 PIN

下列verify-pin-data範例會驗證 PIN 的 PAN。

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 資料

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 VerifyPinData