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

Requêtes MySQL Discussion :

Paramètre salt de la fonction encrypt


Sujet :

Requêtes MySQL

  1. #1
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2003
    Messages : 302
    Points : 316
    Points
    316
    Par défaut Paramètre salt de la fonction encrypt
    La seule différence entre ces lignes est la position du - dans le sel. Quand - est mis à gauche ça marche pas, dans les deux premières positions, sinon ça marche bien O_o


    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
     
    mysql> INSERT INTO users (password) value (encrypt('ALIMELLAH','gH-oo@6Y'));
    Query OK, 1 row affected, 3 warnings (0.02 sec)
     
    mysql> INSERT INTO users (password) value (encrypt('ALIMELLAH','g-Hoo@6Y'));
    ERROR 1048 (23000): Column 'password' cannot be null
     
    mysql> INSERT INTO users (password) value (encrypt('ALIMELLAH','-gHoo@6Y'));
    ERROR 1048 (23000): Column 'password' cannot be null
     
    mysql> INSERT INTO users (password) value (encrypt('ALIMELLAH','gHo-o@6Y'));
    Query OK, 1 row affected, 3 warnings (0.03 sec)
     
    mysql> INSERT INTO users (password) value (encrypt('ALIMELLAH','gHoo-@6Y'));
    Query OK, 1 row affected, 3 warnings (0.02 sec)
     
    mysql> INSERT INTO users (password) value (encrypt('ALIMELLAH','gHoo@-6Y'));
    Query OK, 1 row affected, 3 warnings (0.02 sec)
     
    mysql> INSERT INTO users (password) value (encrypt('ALIMELLAH','gHoo@6-Y'));
    Query OK, 1 row affected, 3 warnings (0.02 sec)
     
    mysql> INSERT INTO users (password) value (encrypt('ALIMELLAH','gHoo@6Y-'));
    Query OK, 1 row affected, 3 warnings (0.02 sec)
     
    mysql>
    Non, c'est une table users dans une de mes bases de données, pas la table users interne à mysql

  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 065
    Points
    19 065
    Par défaut
    Salut yacinechaouche.

    --> https://dev.mysql.com/doc/refman/5.7...functions.html
    Citation Envoyé par yacinechaouche
    The ENCRYPT() function is deprecated as of MySQL 5.7.6, will be removed in a future MySQL release, and should no longer be used. Consider using AES_ENCRYPT() instead.
    Si tu remplaces "encrypt()" par "AES_encrypt()", cela devrait fonctionner :
    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
    88
    89
    90
    91
    92
    93
     
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE `base`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `users`
    --------------
     
    --------------
    CREATE TABLE `users`
    (
      `id`        integer unsigned  NOT NULL AUTO_INCREMENT PRIMARY KEY,
      `password`  varchar(255)      NOT NULL
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    INSERT INTO users (password) value (aes_encrypt('ALIMELLAH', 'gH-oo@6Y'))
    --------------
     
    --------------
    INSERT INTO users (password) value (aes_encrypt('ALIMELLAH', 'g-Hoo@6Y'))
    --------------
     
    --------------
    INSERT INTO users (password) value (aes_encrypt('ALIMELLAH', '-gHoo@6Y'))
    --------------
     
    --------------
    INSERT INTO users (password) value (aes_encrypt('ALIMELLAH', 'gHo-o@6Y'))
    --------------
     
    --------------
    INSERT INTO users (password) value (aes_encrypt('ALIMELLAH', 'gHoo-@6Y'))
    --------------
     
    --------------
    INSERT INTO users (password) value (aes_encrypt('ALIMELLAH', 'gHoo@-6Y'))
    --------------
     
    --------------
    INSERT INTO users (password) value (aes_encrypt('ALIMELLAH', 'gHoo@6-Y'))
    --------------
     
    --------------
    INSERT INTO users (password) value (aes_encrypt('ALIMELLAH', 'gHoo@6Y-'))
    --------------
     
    --------------
    select * from users
    --------------
     
    +----+------------------+
    | id | password         |
    +----+------------------+
    |  1 | ኦœˆA*&¦(pú*  |
    |  2 | ᕳår4Vòefé6ë” |
    |  3 | ±æ˜L÷®UVöÀ=¼d“   ö |
    |  4 | ô}´ÖE!у]ôQ
    ¯6› |
    |  5 | F6»
    ±7ûÛâoâx#£N |
    |  6 | X¡$g'ÜLÜÉ6æ%U¨ |
    |  7 | Æ¥sبDã2^W#†ÕW¾I |
    |  8 | ™daøôQ%Ôbéi+ÁÕÖ© |
    +----+------------------+
    --------------
    COMMIT
    --------------
     
    --------------
    SET AUTOCOMMIT = 1
    --------------
     
     
    Appuyez sur une touche pour continuer...
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour

    Quant à la raison du comportement, je pense que le manuel linux de la fonction crypt donne un début de réponse :

    salt is a two-character string chosen from the set [a-zA-Z0-9./]
    votre caractère "-" est donc non conforme, ce qui ne pose pas de problème quand il est au delà de la deuxième position puisque seuls les deux premiers caractères sont pris en compte.

  4. #4
    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 065
    Points
    19 065
    Par défaut
    Salut aieeeuuuuu.

    Chez moi, la fonction "encrypt" ne fonctionne pas. C'est normal car je suis sous windows :
    If crypt() is not available on your system (as is the case with Windows), ENCRYPT() always returns NULL.
    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
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE `base`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `users`
    --------------
     
    --------------
    CREATE TABLE `users`
    (
      `id`        integer unsigned  NOT NULL AUTO_INCREMENT PRIMARY KEY,
      `password`  varchar(255)      NOT NULL
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    INSERT INTO users (password) value (encrypt('ALIMELLAH', 'codesecret'))
    --------------
     
    ERROR 1048 (23000) at line 34: Le champ 'password' ne peut être vide (null)
    --------------
    select * from users
    --------------
     
    --------------
    COMMIT
    --------------
     
    --------------
    SET AUTOCOMMIT = 1
    --------------
     
     
    Appuyez sur une touche pour continuer...
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2003
    Messages : 302
    Points : 316
    Points
    316
    Par défaut
    Merci à tous ! je ne savais pas qu'il fallait uniquement 2 caractères.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Paramètre optionnel dans une fonction
    Par bractar dans le forum Langage
    Réponses: 3
    Dernier message: 10/03/2006, 17h02
  2. paramètre optionnel dans une fonction
    Par titoumimi dans le forum Langage
    Réponses: 2
    Dernier message: 02/02/2006, 15h29
  3. Paramètre FILE* dans une fonction...
    Par James_ dans le forum C
    Réponses: 16
    Dernier message: 19/01/2006, 16h21
  4. Réponses: 5
    Dernier message: 09/02/2005, 18h50
  5. Réponses: 5
    Dernier message: 18/11/2004, 17h19

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