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 Procédural MySQL Discussion :

Faire une fonction avec aes_decrypt


Sujet :

SQL Procédural MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 19
    Points : 24
    Points
    24
    Par défaut Faire une fonction avec aes_decrypt
    Bonjour
    je voudrais faire une fonction directement utilisable en sql pour décrypter une info que j'ai cryptée en base.
    Je tourne en rond depuis plusieurs heures et je n'arrive pas à trouver car ma fonction me renvoie null.
    j'essaie en binary, en hexa etc ... je ne trouve pas

    ci après ce que je donne en sql versus ce que je donnerais avec la fonction pwdamoi()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select aes_decrypt(matable.pwdencrypt,concat('1234',matable.id,left(upper(date_format(matable.dcreat,'%M')),3))) as pwd,
    pwdamoi(matable.pwdencrypt,matable.dcreat,matable.id) as pwdfunction
     from matable
    en gros j'encrypte avec les données variables de la personne (son id et sa date de création)

    et avec la fonction suivante
    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
    DELIMITER $$
     
    DROP FUNCTION IF EXISTS `madb`.`pwdamoi`$$
     
    CREATE DEFINER=`xxxxxxx`@`%` FUNCTION `pwdamoi`(pPWDENCRYPT varchar(255),pDCREAT date,pID int) RETURNS varchar(200) CHARSET utf8
        DETERMINISTIC
    BEGIN
    declare pwdenclair varchar(100);
    declare pwdencode varchar(255);
    declare motdepasse varchar(100);
    select concat('1234',pPPL_ID,left(upper(date_format(pDCREAT,'%M')),3)) into motdepasse;
    set pwdencode=pPWDENCRYPT;
    select aes_decrypt(pwdencode,motdepasse) into pwdenclair;
     
    RETURN pwdenclair;
    END$$
    Merci de votre aide

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut Roumeg.

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE `base`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `test`
    --------------
     
    --------------
    CREATE TABLE `test`
    ( `id`     int unsigned    NOT NULL AUTO_INCREMENT PRIMARY KEY,
      `name`   varbinary(255)  NOT NULL
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    DROP TRIGGER IF EXISTS `chiffrer`
    --------------
     
    --------------
    CREATE TRIGGER `chiffrer`
    BEFORE INSERT ON `test`
    FOR EACH ROW
    BEGIN
      set new.name = AES_ENCRYPT(NEW.name, 'clefsecrete');
    END
    --------------
     
    --------------
    CREATE FUNCTION `enclair`(In_name varbinary(255))
      RETURNS text
      DETERMINISTIC
      LANGUAGE SQL
    BEGIN
      RETURN AES_DECRYPT(In_name, 'clefsecrete');
    END
    --------------
     
    --------------
    INSERT into `test` (`name`) VALUES
      ('Un'),('Deux'),('Trois'),('Quatre'),('Cinq')
    --------------
     
    --------------
    select id, name          from test
    --------------
     
    +----+------------------+
    | id | name             |
    +----+------------------+
    |  1 |
    {˜ÛY½m’vçVÇ |
    |  2 | íg˜2× %M«“3”Ø |
    |  3 | ^éÒH‚¢ ¿±±Ëê |
    =S | | À`Is‚ľüëQ’c
    |  5 | (ãÐÇ /ß:Ô! |
    +----+------------------+
    --------------
    select id, enclair(name) from test
    --------------
     
    +----+---------------+
    | id | enclair(name) |
    +----+---------------+
    |  1 | Un            |
    |  2 | Deux          |
    |  3 | Trois         |
    |  4 | Quatre        |
    |  5 | Cinq          |
    +----+---------------+
    --------------
    COMMIT
    --------------
     
    Appuyez sur une touche pour continuer...
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 19
    Points : 24
    Points
    24
    Par défaut
    Bonjour Artemus

    Merci beaucoup de ta réponse très détaillée.

    Je vais pouvoir reprendre ma fonction avec ton aide.

    Ainsi même si j'étais à l'OUEST, ce ne sera plus un MYSTERE

Discussions similaires

  1. [AC-2010] comment faire une requete avec la fonction *
    Par Martintin dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 16/01/2011, 19h46
  2. [XL-2007] Faire une recherche avec VBA ou fonction
    Par matinho dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/08/2010, 11h01
  3. [XL-2003] Faire une somme avec la fonction sous total
    Par Gwladys dans le forum Excel
    Réponses: 2
    Dernier message: 09/04/2009, 17h26
  4. Appeler une fonction avec/sans parenthèses
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/12/2002, 18h48
  5. Une fonction avec des attributs non obligatoires
    Par YanK dans le forum Langage
    Réponses: 5
    Dernier message: 15/11/2002, 13h39

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