Bu konu, belirtilen bir anahtar kümesiyle verilerin şifresini çözmek için ENHANCED_SYM_DECRYPT işlevinin nasıl kullanılacağını açıklar.
Arka plan ve ön koşullar
MaxCompute'de ENHANCED_SYM_DECRYPT işlevini kullanarak belirtilen temel veya sarmalanmış anahtar kümesiyle verilerin şifresini çözebilirsiniz. Şifre çözme için kullanılan anahtar kümesi, şifrelemede kullanılanla aynı olmalıdır. Sarmalanmış anahtar kümesi, mevcut bir anahtar kümesinin Key Management Service (KMS) anahtarıyla şifrelenmesiyle oluşturulur. Sarmalanmış anahtar kümelerini KMS ile kullanarak anahtarları, temel anahtar kümelerine kıyasla daha güvenli yönetebilirsiniz.
ENHANCED_SYM_DECRYPT işlevini kullanmadan önce aşağıdaki adımları tamamlayın:
NEW_KEYSETveyaNEW_WRAPPED_KEYSETişlevini kullanarak temel veya sarmalanmış bir anahtar kümesi oluşturun. Daha fazla bilgi için bkz. NEW_KEYSET ve NEW_WRAPPED_KEYSET.Verilerin şifresini çözmek için sarmalanmış bir anahtar kümesi kullanıyorsanız, bu anahtar kümesiyle ilişkili rolün izinlerine sahip olmanız gerekir. Daha fazla bilgi için bkz. KMS'yi etkinleştirin ve yapılandırmaları tamamlayın.
Söz dizimi
BINARY ENHANCED_SYM_DECRYPT(BINARY <keyset> , BINARY <ciphertext> [,string <additional_data>])
Parametreler
-
keyset: Zorunludur. BINARY veya STRUCT türünde olabilen kullanıcı anahtar kümesidir.
ÖnemliŞifre çözme için kullanılan temel veya sarmalanmış anahtar kümesi, şifrelemede kullanılanla aynı olmalıdır.
ciphertext: Zorunludur. Şifresi çözülecek BINARY türündeki şifreli metindir. Şifreli metin, belirtilen anahtar kümesiyle şifrelenmiş olmalıdır.
additional_data: İsteğe bağlıdır. Bu parametre, algoritma tarafından desteklenen doğrulama bilgilerini belirtir. Doğrulama bilgileri STRING türündedir.
Dönüş değeri
BINARY türünde düz metin döndürür.
Örnek veriler
-- Create a table.
create table mf_user_info(id bigint,
name string,
gender string,
id_card_no string,
tel string);
-- Insert data into the table.
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");
-- Query data from the table.
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|
+------------+------+--------+------------+------------+
Örnekler
-
Düz bir anahtar kümesi kullanarak
mf_user_infotablosundakiid_card_nosütununun şifresini çözün:ÖnemliVerilerin şifresini çözmeden önce şifrelendiğinden emin olun. Şifre çözme için kullanılan temel veya sarmalanmış anahtar kümesi, şifrelemede kullanılanla aynı olmalıdır. Şifreleme işlemi örneği için bkz. 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;Aşağıdaki sonuç döner:
SELECT * FROM mf_user_info; -- Sample result +------------+------+--------+------------+------------+ | 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| +------------+------+--------+------------+------------+ -
Sarmalanmış bir anahtar kümesi kullanarak
teltablosundaki şifrelenmişmf_user_infosütununun şifresini çözün: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;Aşağıdaki sonuç döner:
+------------+------+--------+------------+------+ | 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 | +------------+------+--------+------------+------+