CVV2 为特定卡片生成或验证 - AWS 支付密码学

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

CVV2 为特定卡片生成或验证

CVV2是传统上在信用卡背面提供的价值,用于在线购物。对于虚拟卡,它也可能显示在应用程序或屏幕上。从密码学上讲,它与服务代码值相同, CVV1 但具有不同的服务代码值。

创建密钥

$ 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":"CVV2"},{"Key":"CARD_BIN","Value":"12345678"}]'

响应会回显请求参数,包括后续调用的 ARN 以及密钥检查值 (KCV)。

{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2::key/7f7g4spf3xcklhzu", "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": "AEA5CD", "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/7f7g4spf3xcklhzu。您需要在下一步中执行该操作。

生成一个 CVV2

在此示例中,我们将CVV2为给定的 PAN 生成一个,其输入值为PAN和卡片到期日期。

有关所有可用参数,请参阅 API 参考指南中的 CardVerificationValue2

$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2::key/7f7g4spf3xcklhzu --primary-account-number=171234567890123 --generation-attributes CardVerificationValue2='{CardExpiryDate=1127}'
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2::key/7f7g4spf3xcklhzu", "KeyCheckValue": "AEA5CD", "ValidationData": "321" }

验证 CVV2

在此示例中,我们将使用输入的 CVK、卡到期日期PAN和交易期间提供的 CVV 来验证给定的 PAN 以进行验证。CVV2

有关所有可用参数,请参阅 API 参考指南中的 CardVerificationValue2

注意

CVV2 其他输入是用户输入的值。因此,这不一定是定期无法验证的问题的迹象。

$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2::key/7f7g4spf3xcklhzu --primary-account-number=171234567890123 --verification-attributes CardVerificationValue2='{CardExpiryDate=1127} --validation-data 321
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2::key/7f7g4spf3xcklhzu", "KeyCheckValue": "AEA5CD", "ValidationData": "801" }