American Express 特定函數 - AWS 付款密碼編譯

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

American Express 特定函數

CSC1

CSC 第 1 版也稱為 Classic CSC 演算法。服務可以提供 3、4 或 5 位數的號碼。

如需所有可用的參數,請參閱 API 參考指南中的 AmexCardSecurityCodeVersion1

建立金鑰

$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_C0_CARD_VERIFICATION_KEY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Generate=true,Verify=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"CSC1"},{"Key":"CARD_BIN","Value":"12345678"}]'

回應會回傳請求參數,包括後續呼叫的 ARN 以及金鑰檢查值 (KCV)。

{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2::key/esh6hn7pxdtttzgq", "KeyAttributes": { "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY", "KeyClass": "SYMMETRIC_KEY", "KeyAlgorithm": "TDES_2KEY", "KeyModesOfUse": { "Encrypt": false, "Decrypt": false, "Wrap": false, "Unwrap": false, "Generate": true, "Sign": false, "Verify": true, "DeriveKey": false, "NoRestrictions": false } }, "KeyCheckValue": "8B5077", "KeyCheckValueAlgorithm": "ANSI_X9_24", "Enabled": true, "Exportable": true, "KeyState": "CREATE_COMPLETE", "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", "CreateTimestamp": "2023-06-05T06:41:46.648000-07:00", "UsageStartTimestamp": "2023-06-05T06:41:46.626000-07:00" } }

請記下代表金鑰KeyArn的 ,例如 arn:aws:payment-cryptography:us-east-2::key/esh6hn7pxdttzgq。在下一個步驟中,您需要用到。

產生 CSC1

$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2::key/esh6hn7pxdtttzgq --primary-account-number=344131234567848 --generation-attributes AmexCardSecurityCodeVersion1='{CardExpiryDate=1224}' --validation-data-length 4
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2::key/esh6hn7pxdtttzgq", "KeyCheckValue": "8B5077", "ValidationData": "3938" }

驗證 CSC1

在此範例中,我們將驗證 CSC1。

如果 AWS 付款密碼編譯能夠驗證,則會傳回 http/200。如果未驗證值,則會傳回 http/400 回應。

$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2::key/esh6hn7pxdtttzgq --primary-account-number=344131234567848 --verification-attributes AmexCardSecurityCodeVersion1='{CardExpiryDate=1224}'' --validation-data 3938
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2::key/esh6hn7pxdtttzgq", "KeyCheckValue": "8B5077" }

CSC2

CSC 第 2 版也稱為增強型 CSC 演算法。服務可以提供 3、4 或 5 位數的號碼。

如需所有可用的參數,請參閱 API 參考指南中的 AmexCardSecurityCodeVersion2

建立金鑰

$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_C0_CARD_VERIFICATION_KEY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Generate=true,Verify=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"CSC1"},{"Key":"CARD_BIN","Value":"12345678"}]'

回應會回傳請求參數,包括後續呼叫的 ARN 以及金鑰檢查值 (KCV)。

{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2::key/erlm445qvunmvoda", "KeyAttributes": { "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY", "KeyClass": "SYMMETRIC_KEY", "KeyAlgorithm": "TDES_2KEY", "KeyModesOfUse": { "Encrypt": false, "Decrypt": false, "Wrap": false, "Unwrap": false, "Generate": true, "Sign": false, "Verify": true, "DeriveKey": false, "NoRestrictions": false } }, "KeyCheckValue": "BF1077", "KeyCheckValueAlgorithm": "ANSI_X9_24", "Enabled": true, "Exportable": true, "KeyState": "CREATE_COMPLETE", "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", "CreateTimestamp": "2023-06-05T06:41:46.648000-07:00", "UsageStartTimestamp": "2023-06-05T06:41:46.626000-07:00" } }

請記下代表金鑰KeyArn的 ,例如 arn:aws:payment-cryptography:us-east-2::key/erlm445qvunmvoda。在下一個步驟中,您需要用到。

產生 CSC2

在此範例中,我們將產生長度為 4 的 CSC2。可以產生長度為 3、4 或 5 的 CSC。對於 American Express,PANs應為 15 位數,並以 34 或 37 開頭。

$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2::key/erlm445qvunmvoda --primary-account-number=344131234567848 --generation-attributes AmexCardSecurityCodeVersion2='{CardExpiryDate=1224,ServiceCode=999}' --validation-data-length 4
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2::key/erlm445qvunmvoda", "KeyCheckValue": "BF1077", "ValidationData": "3982" }

驗證 CSC2

在此範例中,我們將驗證 CSC2。

如果 AWS 付款密碼編譯能夠驗證,則會傳回 http/200。如果未驗證值,則會傳回 http/400 回應。

$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2::key/erlm445qvunmvoda --primary-account-number=344131234567848 --verification-attributes AmexCardSecurityCodeVersion2='{CardExpiryDate=1224,ServiceCode=999}' --validation-data 3982
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2::key/erlm445qvunmvoda", "KeyCheckValue": "BF1077" }

iCSC

iCSC 也稱為靜態 CSC 演算法,並使用 CSC 第 2 版計算。服務可以提供 3、4 或 5 位數的號碼。

使用服務代碼 999 計算聯絡卡的 iCSC。使用服務代碼 702 計算非接觸式卡的 iCSC。

如需所有可用的參數,請參閱 API 參考指南中的 AmexCardSecurityCodeVersion2

建立金鑰

$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_C0_CARD_VERIFICATION_KEY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Generate=true,Verify=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"CSC1"},{"Key":"CARD_BIN","Value":"12345678"}]'

回應會回傳請求參數,包括後續呼叫的 ARN 以及金鑰檢查值 (KCV)。

{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-1::key/7vrybrbvjcvwtunv", "KeyAttributes": { "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY" "KeyAlgorithm": "TDES_2KEY", "KeyClass": "SYMMETRIC_KEY", "KeyModesOfUse": { "Decrypt": false, "DeriveKey": false, "Encrypt": false, "Generate": true, "NoRestrictions": false, "Sign": false, "Unwrap": false, "Verify": true, "Wrap": false }, }, "KeyCheckValue": "7121C7", "KeyCheckValueAlgorithm": "ANSI_X9_24", "Enabled": true, "Exportable": true, "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", "KeyState": "CREATE_COMPLETE", "CreateTimestamp": "2025-01-29T09:19:21.209000-05:00", "UsageStartTimestamp": "2025-01-29T09:19:21.192000-05:00" } }

請記下代表金鑰KeyArn的 ,例如 arn:aws:payment-cryptography:us-east-1::key/7vrybrbvjcvwtunv。在下一個步驟中,您需要用到。

產生 iCSC

在此範例中,我們將為使用服務代碼 702 的感應式卡片產生長度為 4 的 iCSC。可以產生長度為 3、4 或 5 的 CSC。對於 American Express,PANs應為 15 位數,並以 34 或 37 開頭。

$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-1::key/7vrybrbvjcvwtunv --primary-account-number=344131234567848 --generation-attributes AmexCardSecurityCodeVersion2='{CardExpiryDate=1224,ServiceCode=702}' --validation-data-length 4
{ "KeyArn": arn:aws:payment-cryptography:us-east-1::key/7vrybrbvjcvwtunv, "KeyCheckValue": 7121C7, "ValidationData": "2365" }

驗證 iCSC

在此範例中,我們將驗證 iCSC。

如果 AWS 付款密碼編譯能夠驗證,則會傳回 http/200。如果未驗證值,則會傳回 http/400 回應。

$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-1::key/7vrybrbvjcvwtunv --primary-account-number=344131234567848 --verification-attributes AmexCardSecurityCodeVersion2='{CardExpiryDate=1224,ServiceCode=702}' --validation-data 2365
{ "KeyArn": arn:aws:payment-cryptography:us-east-1::key/7vrybrbvjcvwtunv, "KeyCheckValue": 7121C7 }