Topik ini menjelaskan cara menggunakan fungsi ENHANCED_SYM_DECRYPT untuk mendekripsi data dengan keyset yang ditentukan.
Latar Belakang dan Prasyarat
Anda dapat menggunakan fungsi ENHANCED_SYM_DECRYPT di MaxCompute untuk mendekripsi data dengan keyset dasar atau wrapped keyset yang ditentukan. Keyset yang digunakan untuk dekripsi harus sama dengan keyset yang digunakan saat enkripsi. Wrapped keyset dibuat dengan mengenkripsi keyset yang ada menggunakan kunci Key Management Service (KMS). Penggunaan wrapped keyset bersama KMS memungkinkan pengelolaan kunci yang lebih aman dibandingkan dengan keyset dasar.
Sebelum menggunakan fungsi ENHANCED_SYM_DECRYPT, lakukan langkah-langkah berikut:
Buat keyset dasar atau wrapped keyset menggunakan fungsi
NEW_KEYSETatauNEW_WRAPPED_KEYSET. Untuk informasi selengkapnya, lihat NEW_KEYSET dan NEW_WRAPPED_KEYSET.Jika Anda menggunakan wrapped keyset untuk mendekripsi data, pastikan Anda memiliki izin pada role yang terkait dengan wrapped keyset tersebut. Untuk informasi selengkapnya, lihat Aktifkan KMS dan selesaikan konfigurasi.
Sintaksis
BINARY ENHANCED_SYM_DECRYPT(BINARY <keyset> , BINARY <ciphertext> [,string <additional_data>])Parameter
keyset: Wajib. Keyset pengguna, yang dapat bertipe BINARY atau STRUCT.
PentingKeyset dasar atau wrapped keyset yang digunakan untuk dekripsi harus sama dengan keyset yang digunakan saat enkripsi.
ciphertext: Wajib. Ciphertext bertipe BINARY yang akan didekripsi. Ciphertext tersebut harus telah dienkripsi dengan keyset yang ditentukan.
additional_data: Opsional. Parameter ini menentukan informasi verifikasi yang didukung oleh algoritma. Informasi verifikasi bertipe STRING.
Nilai yang Dikembalikan
Mengembalikan teks biasa bertipe BINARY.
Data Contoh
-- Buat tabel.
create table mf_user_info(id bigint,
name string,
gender string,
id_card_no string,
tel string);
-- Masukkan data ke dalam tabel.
insert overwrite table mf_user_info values(1,"bob","male","0001","13900001234"),
(2,"allen","male","0011","13900001111"),
(3,"kate","female","0111","13900002222"),
(4,"annie","female","1111","13900003333");
-- Kueri data dari tabel.
select * from mf_user_info;
+------------+------+--------+------------+------------+
| id | name | gender | id_card_no | tel |
+------------+------+--------+------------+------------+
| 1 | bob | male | 0001 | 13900001234|
| 2 | allen| male | 0011 | 13900001111|
| 3 | kate | female | 0111 | 13900002222|
| 4 | annie| female | 1111 | 13900003333|
+------------+------+--------+------------+------------+Contoh
Dekripsi kolom
id_card_nopada tabelmf_user_infomenggunakan keyset dasar:PentingSebelum mendekripsi data, pastikan data tersebut telah dienkripsi. Keyset dasar atau wrapped keyset yang digunakan untuk dekripsi harus sama dengan keyset yang digunakan saat enkripsi. Untuk contoh operasi enkripsi, lihat ENHANCED_SYM_ENCRYPT.
INSERT OVERWRITE TABLE mf_user_info SELECT id, name, gender, CAST(ENHANCED_SYM_DECRYPT(unhex('0A1072384D715A414541385044643351534C12580A330A0B4145532D47434D2D323536122026A8FB1126DF4F5B5DD03C180E6919565D7716CBB291815EFB5BBF30F8BEF9AF1801200210011A1072384D715A414541385044643351534C20022A0B68656C6C6F20776F726C64'), UNBASE64(id_card_no)) AS STRING) AS id_card_no, tel FROM mf_user_info;Hasil berikut dikembalikan:
SELECT * FROM mf_user_info; -- Hasil contoh +------------+------+--------+------------+------------+ | id | name | gender | id_card_no | tel | +------------+------+--------+------------+------------+ | 1 | bob | male | 0001 | 13900001234| | 2 | allen| male | 0011 | 13900001111| | 3 | kate | female | 0111 | 13900002222| | 4 | annie| female | 1111 | 13900003333| +------------+------+--------+------------+------------+Gunakan set kunci terbungkus untuk mendekripsi kolom
mf_user_infoyang terenkripsi dalam tabeltel:SELECT /*+ MAPJOIN(a) */ id, name, gender, id_card_no, ENHANCED_SYM_DECRYPT( USE_WRAPPED_KEYSET('acs:kms:cn-hangzhou:1**************7:key/key-hzz****************1t', 'acs:ram::1**************7:role/kms', unhex('613256354C576836656A59314D6D59344E7A6B7A624452754D6D3434627A49786443317A655859786358426F4E6A4D78447654524C4632635077766E74554654584579715242583953724167446D2F397131786F57456E6F5474516739633853766242674456773565736674714A4D5435524455382F6F6A2B4E61766D774344494C734B6A416B6B675A42496F5568656F566D38564C4F30506D4778767137646956517453447A5467395147775639533161305A464A6D6A45562B6742722F56386653444D6E424D2B71493779784668303866594E6D336578775744423949726B645A3469784F2B532B476E6750523854524A58326E5768666478347034473468687248684A514D615071332F526C342B67427652773D3D') ), ENHANCED_SYM_ENCRYPT( USE_WRAPPED_KEYSET('acs:kms:cn-hangzhou:1**************7:key/key-hzz****************1t', 'acs:ram::1**************7:role/kms', unhex('613256354C576836656A59314D6D59344E7A6B7A624452754D6D3434627A49786443317A655859786358426F4E6A4D78447654524C4632635077766E74554654584579715242583953724167446D2F397131786F57456E6F5474516739633853766242674456773565736674714A4D5435524455382F6F6A2B4E61766D774344494C734B6A416B6B675A42496F5568656F566D38564C4F30506D4778767137646956517453447A5467395147775639533161305A464A6D6A45562B6742722F56386653444D6E424D2B71493779784668303866594E6D336578775744423949726B645A3469784F2B532B476E6750523854524A58326E5768666478347034473468687248684A514D615071332F526C342B67427652773D3D') ), tel ), '' ) AS tel FROM mf_user_info;Hasil berikut dikembalikan:
+------------+------+--------+------------+------+ | id | name | gender | id_card_no | tel | +------------+------+--------+------------+------+ | 1 | bob | male | 0001 | 13900001234 | | 2 | allen | male | 0011 | 13900001111 | | 3 | kate | female | 0111 | 13900002222 | | 4 | annie | female | 1111 | 13900003333 | +------------+------+--------+------------+------+