Tous les produits
Search
Centre de documentation

MaxCompute:ENHANCED_SYM_DECRYPT

Dernière mise à jour :Sep 08, 2026

Cette rubrique explique comment utiliser la fonction ENHANCED_SYM_DECRYPT pour déchiffrer des données à l'aide d'un jeu de clés spécifié.

Contexte et prérequis

La fonction ENHANCED_SYM_DECRYPT de MaxCompute permet de déchiffrer des données à l'aide d'un jeu de clés de base ou encapsulé. Le jeu de clés utilisé pour le déchiffrement doit être identique à celui employé lors du chiffrement. Un jeu de clés encapsulé est créé en chiffrant un jeu de clés existant avec une clé Key Management Service (KMS). L'utilisation de jeux de clés encapsulés avec KMS offre une gestion des clés plus sécurisée que celle des jeux de clés de base.

Avant d'utiliser la fonction ENHANCED_SYM_DECRYPT, effectuez les opérations suivantes :

  • Générez un jeu de clés de base ou un jeu de clés encapsulé à l'aide des fonctions NEW_KEYSET ou NEW_WRAPPED_KEYSET. Pour plus d'informations, consultez les rubriques NEW_KEYSET et NEW_WRAPPED_KEYSET.

  • Si vous utilisez un jeu de clés encapsulé pour déchiffrer des données, vous devez disposer des autorisations associées au rôle lié à ce jeu de clés. Pour plus d'informations, consultez la rubrique Activate KMS and complete configurations.

Syntaxe

BINARY ENHANCED_SYM_DECRYPT(BINARY <keyset> , BINARY <ciphertext> [,string <additional_data>])

Paramètres

  • keyset : obligatoire. Jeu de clés utilisateur, de type BINARY ou STRUCT.

    Important

    Le jeu de clés de base ou encapsulé utilisé pour le déchiffrement doit être identique à celui employé lors du chiffrement.

  • ciphertext : obligatoire. Texte chiffré de type BINARY à déchiffrer. Ce texte chiffré doit avoir été chiffré avec le jeu de clés spécifié.

  • additional_data : facultatif. Ce paramètre spécifie les informations de vérification prises en charge par l'algorithme. Ces informations sont de type STRING.

Valeur renvoyée

Renvoie le texte en clair de type BINARY.

Exemple de données

-- 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|
+------------+------+--------+------------+------------+

Exemples

  • Déchiffrez la colonne id_card_no de la table mf_user_info à l'aide d'un jeu de clés simple :

    Important

    Avant de déchiffrer les données, assurez-vous qu'elles ont bien été chiffrées. Le jeu de clés de base ou encapsulé utilisé pour le déchiffrement doit être identique à celui employé lors du chiffrement. Pour un exemple d'opération de chiffrement, consultez la rubrique 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;

    Le résultat suivant s'affiche :

    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|
    +------------+------+--------+------------+------------+
  • Utilisez un jeu de clés encapsulé pour déchiffrer la colonne chiffrée mf_user_info dans la table tel :

     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;

    Le résultat suivant s'affiche :

    +------------+------+--------+------------+------+
    | 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 |
    +------------+------+--------+------------+------+