Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#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
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
#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 ), 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
Pages : 1