Vous n'êtes pas identifié(e).

#1 Re : Sécurité » pgcrypto et changement de SGBD » 25/02/2011 13:06:01

J'ai effectué quelques tests entre PG et MySQL, les chaînes cryptées avec l'algo md5 ou DES en Postgres sont bien utilisables en MySQL avec la fonction encrypt(), par contre, je n'ai pas réussi à obtenir le même résultat entre PG et MySQL avec l'algo BlowFish ou XDES...

exemples :

pg=# SELECT crypt('test', gen_salt('md5'));
               crypt
------------------------------------
 $1$ymR4H7RQ$AKZlNgruvwuqY6GHN18tM1
(1 ligne)

mysql> SELECT encrypt('test', '$1$ymR4H7RQ$AKZlNgruvwuqY6GHN18tM1');
+-------------------------------------------------------+
| encrypt('test', '$1$ymR4H7RQ$AKZlNgruvwuqY6GHN18tM1') |
+-------------------------------------------------------+
| $1$ymR4H7RQ$AKZlNgruvwuqY6GHN18tM1                    |
+-------------------------------------------------------+
1 row in set (0.00 sec)

=> ok smile



pg=# SELECT crypt('test', gen_salt('bf'));
                            crypt
--------------------------------------------------------------
 $2a$06$mPgR6FYOoUDrnzBZrlqmGeIQGE.Li6DF3IuWx82fX7o0nLIZhNlQS
(1 ligne)


mysql> SELECT encrypt('test', '$2a$06$mPgR6FYOoUDrnzBZrlqmGeIQGE.Li6DF3IuWx82fX7o0nLIZhNlQS');
+---------------------------------------------------------------------------------+
| encrypt('test', '$2a$06$mPgR6FYOoUDrnzBZrlqmGeIQGE.Li6DF3IuWx82fX7o0nLIZhNlQS') |
+---------------------------------------------------------------------------------+
| $2rcByx51ejoM                                                                   |
+---------------------------------------------------------------------------------+
1 row in set (0.00 sec)

=> pas ok sad

#2 Sécurité » pgcrypto et changement de SGBD » 18/02/2011 12:53:00

Nico
Réponses : 2

Bonjour,

Pour ma petite base d'utilisateurs, j'envisage de crypter les mots de passe (en non réversible).

Je pensais utiliser la contrib pgcrypto de la manière suivante :

-- Mise à jour du nouveau champ pwd_crypt pour les mots de passe cryptés
UPDATE users
  SET pwd_crypt = crypt(pwd, gen_salt('md5'));


Puis pour l'authentification, quelque chose comme :

SELECT *
  FROM users
  WHERE login = 'monlogin'
  AND pwd_crypt = crypt('mon mot de passe en clair', pwd_crypt);


Cela fonctionne bien, mais je m'interrogeais sur un point : si je décide un jour de changer de SGBD (non non ce n'est pas mon intention, mais je préfère prévoir wink), par exemple pour passer à MySQL, comment puis-je conserver mon système d'authentification avec mes mots de passe cryptés ? Existe-t-il des librairies équivalentes adaptables à d'autres SGBD ?
Idem si j'utilise un autre algo comme BlowFish à la place de md5...


Merci,
Nico

Pied de page des forums

Propulsé par FluxBB