IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Petit problème avec le décryptage DES3


Sujet :

SQL Oracle

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Petit problème avec le décryptage DES3
    Bonjour à tous,

    Voilà j'ai un petit problème concernant le décryptage d'une donnée encryptée en DS3.

    Cette donnée encryptée est en + encodée en Base64 (Ex: QSh3FWBqdYHTb4z2e1Byug==).
    Le problème auquel je suis confronté est que je n'arrive pas à exploiter cette donnée encodée en Base64. Je connais bien la clé et le vecteur qui ont été utilisés pour crypter la donnée.

    Voici le code de la procédure stockée utilisée :

    DECLARE
    val_decrypt VARCHAR2(200);
    BEGIN

    val_decrypt := DBMS_OBFUSCATION_TOOLKIT.des3decrypt (
    input_string => utl_encode.base64_decode(UTL_RAW.cast_to_raw('QSh3FWBqdYHTb4z2e1Byug==')),
    key_string =>'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
    iv_string => 'XXXXXXXXXXXXXXXX'
    );

    DBMS_OUTPUT.put_line('Valeur décryptée = '|| val_decrypt);

    END;


    J'ai essayé pas mal de choses pour exploiter cette donnée encodée en base 64 mais je n'ai encore rien trouvé pour l'instant permettant d'obtenir la bonne valeur lors du décryptage.

    Si quelqu'un a été confronté au même problème ou a des idées pour résoudre cela, je suis preneur.

    Merci d'avance

    Gorky

  2. #2
    Membre habitué Avatar de Laurent_du_78
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 138
    Points : 188
    Points
    188
    Par défaut
    Bonjour,
    je sais pas si cela peut t'aider, mais je reformate (RAW to VARCHAR) le résultat.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
          dbms_obfuscation_toolkit.DESDecrypt(
                   input => encrypted_raw,
                   key => raw_key, 
                   decrypted_data => decrypted_raw);
     
          Chaine := utl_raw.cast_to_varchar2(decrypted_raw);
    Amicalement
    24h-en-piste.com

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci de ta réponse Laurent mais apparemment ca ne marche pas plus.

    Pour information, la donnée a été encryptée via openssl, le mode des-ede3-cbc et encodée en Base64.


    Voici 2 nouvelles versions de la procédure stockée avec une petite correction (paramètre wihch à 1 nécessaire vu le mode d'encryptage) et avec une nouvelle signature (tout en varchar mais qui ne marche pas plus).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
     
    DECLARE
    val_decrypt VARCHAR2(200);
    BEGIN
     
    val_decrypt := DBMS_OBFUSCATION_TOOLKIT.des3decrypt (
    input_string =>'QSh3FWBqdYHTb4z2e1Byug==',
    key_string =>'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
    which => 1,
    iv_string =>'XXXXXXXXXXXXXX'
     
    );
     
    DBMS_OUTPUT.put_line('Valeur décryptée = ' || val_decrypt);
     
    END;
     
     
    DECLARE
    val_decrypt VARCHAR2(200);
    BEGIN
     
    val_decrypt := DBMS_OBFUSCATION_TOOLKIT.des3decrypt (
    input_string =>UTL_RAW.CAST_TO_VARCHAR2(utl_encode.base64_decode(UTL_RAW.cast_to_raw('QSh3FWBqdYHTb4z2e1Byug=='))),
    key_string =>'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
    which => 1,
    iv_string =>'XXXXXXXXXXXXXXXX'
    );
     
    DBMS_OUTPUT.put_line('Valeur décryptée = ' || val_decrypt);
     
    END;
    Merci à tous

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    C'est encore moi.

    J'ai réussi à obtenir une version de procédure stockée ou j'arrive à décrypter correctement la valeur. Cependant, la valeur est suivie de caractères spéciaux (Ex: DOUDOU.DADOU). Quelqu'un aurait-il une réponse à cela ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
    DECLARE
          val_decrypt VARCHAR2(200);
       BEGIN
     
          val_decrypt := DBMS_OBFUSCATION_TOOLKIT.des3decrypt (
                 input      => utl_encode.base64_decode(UTL_RAW.cast_to_raw('VzEhxbIiA5WqjrjCHdxqZQ==')),
                 key        => HEXTORAW('XXXXXXXXXXXXXXXXXXXXXXXX'),
                 which             => 1,
                 iv         => HEXTORAW('XXXXXXXXXXXXXX')
           );
     
              DBMS_OUTPUT.put_line('Valeur décryptée = ' || UTL_RAW.cast_to_varchar2(val_decrypt));
     
    END;
    Merci d'avance

  5. #5
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    C'est facile DOUDOU.DADOU par ce que le cryptage ca marche par bloc de 8. chiffrement par bloc (block ciphering).
    Tu peut lire l'article : http://mbouayoun.developpez.com/cryptage9i/

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci de ta réponse bouyao.

    Y aurait-il un moyen assez simple de supprimer les charactères spéciaux d'une chaîne car apparemment suivant la valeur décryptée retournée, les caractères spéciaux rajoutés à la fin de la chaîne ne sont pas les mêmes.
    J'ai regardé un peu au niveau des fonctions SQL et des packages et je n'ai rien trouvé qui permettrait de faire ce traitement.

    Merci d'avance

  7. #7
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    si tu limites le mot codé aux lettres et chiffres c'est pas compliqué d'exclure de cette chaines les caractères qui ne sont ni des lettres ni des chiffres

  8. #8
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    Ici : http://mbouayoun.developpez.com/cryptage9i/
    j'ai donner un exemple pour remedier a ca. Si tu est en 10g c'est mieu d'utiliser DBMS_CRYPTO en utilisant AES128, AES192 ou AES256

Discussions similaires

  1. Petits problèmes avec une CListCtrl
    Par vanitom dans le forum MFC
    Réponses: 2
    Dernier message: 17/11/2005, 11h45
  2. Un petit problème avec pop
    Par Paulinho dans le forum C++
    Réponses: 4
    Dernier message: 13/11/2005, 20h57
  3. Petit problème avec Line Input
    Par GrosQuicK dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/09/2005, 12h47
  4. (Petit ?) problème avec une page contenant du Flash
    Par ologram dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/09/2005, 18h45
  5. Petit problème avec SDL
    Par Nyarlathotep dans le forum C
    Réponses: 10
    Dernier message: 01/07/2005, 09h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo