

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Genera o verifica un CVV per una determinata carta
<a name="use-cases-issuers.generalfunctions.cvv"></a>

[CVV](terminology.md#terms.cvv) o CVV1 è un valore tradizionalmente incorporato nella banda magnetica di una scheda. Non è lo stesso di CVV2 (visibile al titolare della carta e utilizzabile per gli acquisti online).

Il primo passo è creare una chiave. Per questo tutorial, crei una chiave [CVK](terminology.md#terms.cvk) 3DES (2KEY TDES) a doppia lunghezza. 

**Nota**  
CVV CVV2 e iCVV utilizzano tutti algoritmi simili se non identici, ma variano i dati di input. Tutti utilizzano lo stesso tipo di chiave TR31 \$1C0\$1CARD\$1VERIFICATION\$1KEY, ma si consiglia di utilizzare chiavi separate per ogni scopo. Questi possono essere distinti utilizzando tag alias come nell'esempio seguente. and/or 

## Crea la chiave
<a name="use-cases-issuers.generalfunctions.cvv.setup"></a>

```
$ 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 risposta richiama i parametri della richiesta, tra cui un ARN per le chiamate successive e un Key Check Value (KCV).

```
{
            "Key": {
                "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333: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"
            }
        }
```

*Prendi nota di `KeyArn` ciò che rappresenta la chiave, ad esempio arn:aws:payment-cryptography:us-east- 2:111122223333:key/r52o3wbqxyf6qlqr.* Ne hai bisogno nel passaggio successivo.

## Genera un CVV
<a name="use-cases-issuers.generalfunctions.cvv.generate"></a>

**Example**  
In questo esempio, genereremo un [CVV](terminology.md#terms.cvv) per un determinato PAN con gli input di`PAN`, un codice di servizio (come definito da ISO/IEC 7813) di 121 e la data di scadenza della carta.   
Per tutti i parametri disponibili, vedi [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) nella guida di riferimento dell'API.   

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

```
                  {
                      "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/r52o3wbqxyf6qlqr",
                      "KeyCheckValue": "DE89F9",
                      "ValidationData": "801"
                  }
```

## Convalida CVV
<a name="use-cases-issuers.generalfunctions.cvv.verify"></a>

**Example**  
In questo esempio, verificheremo un [CVV](terminology.md#terms.cvv) per un determinato PAN inserendo un CVK, un codice di servizio 121`PAN`, la data di scadenza della carta e il CVV fornito durante la transazione per la convalida.   
[Per tutti i parametri disponibili, consulta il paragrafo 1 nella guida di riferimento delle API. CardVerificationValue](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html)   
CVV non è un valore inserito dall'utente (come CVV2), ma in genere è incorporato in una banda magnetica. Si dovrebbe valutare se debba sempre essere convalidato quando fornito.

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

```
{
                    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/r52o3wbqxyf6qlqr",
                    "KeyCheckValue": "DE89F9",
                    "ValidationData": "801"
}
```