Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 02/06/2013 21:27:06
- maya
- Membre
cacher son mot de passe
Bonjour,
J'ai crée une base de données sous Postgresql contenant une colonne nommée password, je voudrais si possible rendre les mots de passes non visible.
J'ai cherché de la documentation , j'ai trouvé des fonctions encrypt() et decrypt() qui ne marche malheureusement pas, postgre ne les reconnait pas.
Pouvez m’éclaircir sur ce sujet.
Merci d'avance pour votre aide.
Hors ligne
#2 02/06/2013 21:35:13
- gleu
- Administrateur
Re : cacher son mot de passe
Vous pouvez les chiffrer grâce au module pgcrypto (http://docs.postgresql.fr/9.2/pgcrypto.html) ou ne pas les rendre lisibles par certains utilisateurs (voir la commande GRANT/REVOKE).
Guillaume.
Hors ligne
#3 16/06/2013 11:48:19
- junior222
- Membre
Re : cacher son mot de passe
Salut moi j'ai le méme problème je veux enregistrer un utilisateur avec un mot de passe crypté voilà ce que je fait:
insert into utilisateur (login,mot_de_passe) values('admin', encrypt('admin','1234','aes'))
mais on me dit que la fonction encrypt n'existe pas comment faire?
Hors ligne
#4 16/06/2013 13:54:04
- rjuju
- Administrateur
Re : cacher son mot de passe
Bonjour,
avez-vous installé l'extension pgcrypto ?
Julien.
https://rjuju.github.io/
Hors ligne
#5 17/06/2013 11:22:50
- junior222
- Membre
Re : cacher son mot de passe
non comment faire svp?
Hors ligne
#6 17/06/2013 12:26:57
- rjuju
- Administrateur
Re : cacher son mot de passe
Si vous êtes en postgresql version 9.1 ou supérieure, il suffit de faire "CREATE EXTENSION pgcrypto;"
Julien.
https://rjuju.github.io/
Hors ligne
#7 17/06/2013 12:57:54
- junior222
- Membre
Re : cacher son mot de passe
merci sa marche bien lorsque je veux decrypter sa me dit ceci:
ERREUR: decrypt error: Data not a multiple of block size
********** Erreur **********
ERREUR: decrypt error: Data not a multiple of block size
État SQL :39000
voilà mon code:
select id, decrypt('mot_de_passe','1234','aes') from utilisateur
Hors ligne
#8 17/06/2013 21:48:47
- MitsuTomoe
- Membre
Re : cacher son mot de passe
Bonjour,
j'ai l'impression que les quotes autour de mot_de_passe sont en trop :
select id, decrypt(mot_de_passe,'1234','aes') from utilisateur where ...
L'exemple donné dans la doc parle de : encrypt(data, 'fooz', 'bf')
Alex
Hors ligne
#9 18/06/2013 10:46:19
- junior222
- Membre
Re : cacher son mot de passe
lorsque j'enlève les quottes une autre erreur survient que voilà:
ERREUR: la fonction decrypt(character varying, unknown, unknown) n'existe pas
LINE 1: select id, decrypt(mot_de_passe,'1234','aes') from utilisate...
^
HINT: Aucune fonction ne correspond au nom donné et aux types d'arguments.
Vous devez ajouter des conversions explicites de type.
********** Erreur **********
ERREUR: la fonction decrypt(character varying, unknown, unknown) n'existe pas
État SQL :42883
Astuce : Aucune fonction ne correspond au nom donné et aux types d'arguments.
Vous devez ajouter des conversions explicites de type.
Caractère : 12
apparemment cette fonction prend comme premier paramètre des bites et non une chaine de caractère. Que faire?
Hors ligne
#10 18/06/2013 21:56:43
- MitsuTomoe
- Membre
Re : cacher son mot de passe
Je crois que vous n'avez pas créé l'extension pgcrypto, comme indiqué par rjuju . Exemple :
$ psql
psql (9.2.4)
Saisissez « help » pour l'aide.
conclavi_test=# select encrypt('azerty','fooz','bf');
ERREUR: la fonction encrypt(unknown, unknown, unknown) n'existe pas
LIGNE 1 : select encrypt('azerty','fooz','bf');
^
ASTUCE : Aucune fonction ne correspond au nom donné et aux types d'arguments.
Vous devez ajouter des conversions explicites de type.
conclavi_test=# \dx
Liste des extensions installées
Nom | Version | Schéma | Description
---------+---------+------------+------------------------------
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
(1 ligne)
conclavi_test=# create extension pgcrypto;
CREATE EXTENSION
conclavi_test=# \dx
Liste des extensions installées
Nom | Version | Schéma | Description
----------+---------+------------+------------------------------
pgcrypto | 1.0 | public | cryptographic functions
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
(2 lignes)
conclavi_test=# select encrypt('azerty','fooz','bf');
encrypt
--------------------
\x888475ea29dbb241
(1 ligne)
conclavi_test=#
Alex
Hors ligne
#11 19/06/2013 14:40:58
- junior222
- Membre
Re : cacher son mot de passe
j'ai résolu mon problème en regardant la doc :
Pour crypter j'utilise ceci:
insert into utilisateur (login,mot_de_passe)values ('admin1',crypt('admin1',gen_salt('bf')))
et pour me connecter à mon application j'utilise ceci:
select mot_de_passe=crypt('admin',mot_de_passe) from utilisateur where login='admin'
merci à tous
Hors ligne
#12 18/12/2017 16:24:10
- fbamiere@yahoo.com
- Membre
Re : cacher son mot de passe
Bonjour, je recherche un algorithme qui me permet de crypter (avec le salt connu de moi) et de decrypter (avec le même salt).
Est il possible de décrypter (l'inverser de la fonction encrypt) ?
merci
Hors ligne
#13 18/12/2017 16:31:20
- ruizsebastien
- Membre
Re : cacher son mot de passe
Bonjour,
(Il est préférable d'ouvrir un nouveau sujet quand vous avez une nouvelle question et ne pas rebondir sur un sujet précédent).
Oui il y a la fonction decrypt de pgcrytpo :
https://docs.postgresql.fr/9.6/pgcrypto.html
Cordialement,
Sébastien.
Hors ligne
Pages : 1