Genera o verifica un CVV para una tarjeta determinada - AWS Criptografía de pagos

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Genera o verifica un CVV para una tarjeta determinada

CVV o CVV1 es un valor que tradicionalmente está incrustado en la banda magnética de una tarjeta. No es lo mismo que CVV2 (visible para el titular de la tarjeta y para su uso en compras en línea).

El primer paso es crear una clave. Para este tutorial, debe crear una clave CVK 3DES (2KEY TDES) de doble longitud.

nota

Tanto el CVV CVV2 como el iCVV utilizan algoritmos similares, si no idénticos, pero varían los datos de entrada. Todos utilizan el mismo tipo de clave TR31 _C0_CARD_VERIFICATION_KEY, pero se recomienda utilizar claves distintas para cada propósito. Se pueden distinguir mediante etiquetas de alias, como en el ejemplo siguiente. and/or

Crea la clave

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

La respuesta refleja los parámetros de la solicitud, incluyendo un ARN para las llamadas posteriores y un valor de verificación clave (KCV).

{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2::key/r52o3wbqxyf6qlqr", "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": "DE89F9", "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" } }

Tome nota de lo KeyArn que representa la clave, por ejemplo arn:aws:payment-cryptography:us-east-2: :key/r52o3wbqxyf6qlqr. Lo necesitará en el siguiente paso.

Genera un CVV

En este ejemplo, generaremos un CVV para un PAN determinado con entradas de 121PAN, un código de servicio (tal como se define en ISO/IEC 7813) y una fecha de caducidad de la tarjeta.

Para ver todos los parámetros disponibles, consulte el apartado CardVerificationValue1 de la guía de referencia de la API.

$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2::key/r52o3wbqxyf6qlqr --primary-account-number=171234567890123 --generation-attributes CardVerificationValue1='{CardExpiryDate=1127,ServiceCode=121}'
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2::key/r52o3wbqxyf6qlqr", "KeyCheckValue": "DE89F9", "ValidationData": "801" }

Valide el CVV

En este ejemplo, verificaremos el CVV de un PAN determinado introduciendo un CVK, un código de servicio 121PAN, la fecha de caducidad de la tarjeta y el CVV proporcionado durante la transacción para la validación.

Para ver todos los parámetros disponibles, consulte el apartado CardVerificationValue1 de la guía de referencia de la API.

nota

El CVV no es un valor introducido por el usuario (por ejemplo CVV2), sino que suele estar incrustado en una banda magnética. Se debe tener en cuenta si siempre debe validarse cuando se proporciona.

$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2::key/r52o3wbqxyf6qlqr --primary-account-number=171234567890123 --verification-attributes CardVerificationValue1='{CardExpiryDate=1127,ServiceCode=121} --validation-data 801
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2::key/r52o3wbqxyf6qlqr", "KeyCheckValue": "DE89F9", "ValidationData": "801" }