

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Enkripsi data
<a name="encrypt-data"></a>

 `Encrypt Data`[API digunakan untuk mengenkripsi data menggunakan kunci enkripsi data simetris dan asimetris serta kunci turunan [DUKPT](terminology.md#terms.dukpt) dan EMV.](terminology.md#terms.emv) Berbagai algoritma dan variasi didukung termasuk`TDES`, `RSA` dan`AES`.

Input utama adalah kunci enkripsi yang digunakan untuk mengenkripsi data, data teks biasa dalam format HexBinary yang akan dienkripsi dan atribut enkripsi seperti vektor inisialisasi dan mode untuk sandi blok seperti TDES. Data plaintext harus dalam kelipatan 8 byte untuk`TDES`, 16 byte untuk `AES` dan panjang kunci dalam kasus. `RSA` Input kunci simetris (TDES, AES, DUKPT, EMV) harus empuk dalam kasus di mana data input tidak memenuhi persyaratan ini. Tabel berikut menunjukkan panjang maksimum plaintext untuk setiap jenis kunci dan jenis padding yang Anda tentukan `EncryptionAttributes` untuk kunci RSA.


| Jenis bantalan | RSA\$12048 | RSA\$13072 | RSA\$14096 | 
| --- | --- | --- | --- | 
| OAEP SHA1 | 428 | 684 | 940 | 
| OAEP SHA256 | 380 | 636 | 892 | 
| OAEP SHA512 | 252 | 508 | 764 | 
| PKCS1 | 488 | 744 | 1000 | 
| None | 488 | 744 | 1000 | 

Output utama termasuk data terenkripsi sebagai ciphertext dalam format HexBinary dan nilai checksum untuk kunci enkripsi. Untuk detail tentang semua opsi yang tersedia, silakan baca Panduan API untuk [Enkripsi](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_EncryptData.html). 

**Topics**
+ [Enkripsi data menggunakan kunci simetris AES](#w2aac15c16c11c13)
+ [Enkripsi data menggunakan kunci DUKPT](#w2aac15c16c11c15)
+ [Enkripsi data menggunakan kunci simetris turunan EMV](#w2aac15c16c11c17)
+ [Enkripsi data menggunakan kunci RSA](#crypto-ops.encrypt-rsa)

## Enkripsi data menggunakan kunci simetris AES
<a name="w2aac15c16c11c13"></a>

**catatan**  
 Semua contoh mengasumsikan kunci yang relevan sudah ada. Kunci dapat dibuat menggunakan [CreateKey](create-keys.md)operasi atau diimpor menggunakan [ImportKey](keys-import.md)operasi. 

**Example**  
 Dalam contoh ini, kita akan mengenkripsi data plaintext menggunakan kunci simetris yang telah dibuat menggunakan [CreateKey](create-keys.md)Operasi atau diimpor menggunakan Operasi. [ImportKey](keys-import.md) Untuk operasi ini, kunci harus KeyModesOfUse disetel ke `Encrypt` dan KeyUsage disetel ke`TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY`. Silakan lihat [Kunci untuk Operasi Kriptografi](crypto-ops-validkeys-ops.md) untuk opsi lainnya.   

```
$ aws payment-cryptography-data encrypt-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi --plain-text 31323334313233343132333431323334 --encryption-attributes 'Symmetric={Mode=CBC}'
```

```
         
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "KeyCheckValue": "71D7AE",
    "CipherText": "33612AB9D6929C3A828EB6030082B2BD"
}
```

## Enkripsi data menggunakan kunci DUKPT
<a name="w2aac15c16c11c15"></a>

**Example**  
 [Dalam contoh ini, kita akan mengenkripsi data plaintext menggunakan kunci DUKPT.](terminology.md#terms.dukpt) AWS Dukungan Kriptografi Pembayaran `TDES` dan kunci `AES` DUKPT. Untuk operasi ini, kunci harus KeyModesOfUse disetel ke `DeriveKey` dan KeyUsage disetel ke`TR31_B0_BASE_DERIVATION_KEY`. Silakan lihat [Kunci untuk Operasi Kriptografi](crypto-ops-validkeys-ops.md) untuk opsi lainnya.   

```
$ aws payment-cryptography-data encrypt-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi --plain-text 31323334313233343132333431323334 --encryption-attributes 'Dukpt={KeySerialNumber=FFFF9876543210E00001}'
```

```
         
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "KeyCheckValue": "71D7AE",
    "CipherText": "33612AB9D6929C3A828EB6030082B2BD"
}
```

## Enkripsi data menggunakan kunci simetris turunan EMV
<a name="w2aac15c16c11c17"></a>

**Example**  
 Dalam contoh ini, kita akan mengenkripsi data teks yang jelas menggunakan kunci simetris turunan EMV yang telah dibuat. Anda dapat menggunakan perintah seperti ini untuk mengirim data ke kartu EMV. Untuk operasi ini, kunci harus KeyModesOfUse disetel ke `Derive` dan KeyUsage disetel ke `TR31_E1_EMV_MKEY_CONFIDENTIALITY` atau`TR31_E6_EMV_MKEY_OTHER`. Silakan lihat [Kunci untuk Operasi Kriptografi](crypto-ops-validkeys-ops.md) untuk lebih jelasnya.   

```
$ aws payment-cryptography-data encrypt-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi --plain-text 33612AB9D6929C3A828EB6030082B2BD --encryption-attributes 'Emv={MajorKeyDerivationMode=EMV_OPTION_A,PanSequenceNumber=27,PrimaryAccountNumber=1000000000000432,SessionDerivationData=02BB000000000000, InitializationVector=1500000000000999,Mode=CBC}'
```

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "KeyCheckValue": "71D7AE",
    "CipherText": "33612AB9D6929C3A828EB6030082B2BD"
}
```

## Enkripsi data menggunakan kunci RSA
<a name="crypto-ops.encrypt-rsa"></a>

**Example**  
 Dalam contoh ini, kita akan mengenkripsi data plaintext menggunakan [kunci publik RSA](terminology.md#terms.publickey) yang telah diimpor menggunakan operasi. [ImportKey](keys-import.md) Untuk operasi ini, kunci harus KeyModesOfUse disetel ke `Encrypt` dan KeyUsage disetel ke`TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION`. Silakan lihat [Kunci untuk Operasi Kriptografi](crypto-ops-validkeys-ops.md) untuk opsi lainnya.   
 *Untuk PKCS \$17 atau skema padding lainnya yang saat ini tidak didukung, mohon terapkan sebelum memanggil layanan dan pilih no padding dengan menghilangkan indikator padding 'Asymmetric= \$1\$1 '*   

```
$ aws payment-cryptography-data encrypt-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/thfezpmsalcfwmsg --plain-text 31323334313233343132333431323334 --encryption-attributes 'Asymmetric={PaddingType=OAEP_SHA256}'
```

```
     
{
 "CipherText": "12DF6A2F64CC566D124900D68E8AFEAA794CA819876E258564D525001D00AC93047A83FB13 \ 
 E73F06329A100704FA484A15A49F06A7A2E55A241D276491AA91F6D2D8590C60CDE57A642BC64A897F4832A3930 \ 
 0FAEC7981102CA0F7370BFBF757F271EF0BB2516007AB111060A9633D1736A9158042D30C5AE11F8C5473EC70F067 \ 
 72590DEA1638E2B41FAE6FB1662258596072B13F8E2F62F5D9FAF92C12BB70F42F2ECDCF56AADF0E311D4118FE3591 \ 
 FB672998CCE9D00FFFE05D2CD154E3120C5443C8CF9131C7A6A6C05F5723B8F5C07A4003A5A6173E1B425E2B5E42AD \ 
 7A2966734309387C9938B029AFB20828ACFC6D00CD1539234A4A8D9B94CDD4F23A",
 "KeyArn": "arn:aws:payment-cryptography:us-east-1:111122223333:key/5dza7xqd6soanjtb",
 "KeyCheckValue": "FF9DE9CE"
}
```