PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → question SQL
question SQL
Iniciado por roumegou, 28,dic. 2018 13:43 - 5 respuestas
Publicado el 28,diciembre 2018 - 13:43
Bonjour,
rien à voir avec windev mais c'est pour créer une fonction dans mysql.
J'ai un système de cryptage des mots de passe et cela me gave à chaque
fois de rechercher ma syntaxe; donc je voudrais faire une fonction.
Je pense avoir un pb de typage de variable car cela me retourne Null

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

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
DELIMITER $$

DROP FUNCTION IF EXISTS `kpicenter`.`pwd4us`$$

CREATE DEFINER=`roumegou`@`%` 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$$

DELIMITER ;

sur le principe la fonction est bonne; mais je ne sais pas pourquoi
lorsque je retourne de résultat de aes_decrypt j'ai du null
Si je teste en renvoyant les valeurs intermédiaires
(motdepasse,pwdencode) cela retourne bien ce qui ets attendu.
Je pense avoir un pb de typage de variable.

Merci de vos réponses.

---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Miembro registrado
120 mensajes
Publicado el 28,diciembre 2018 - 15:16
Bonjour, sans répondre vraiment à votre question, je me permet d'attirer votre attention sur le fait qu'un bon système de cryptage de mot de passe ne doit pas être réversible.
Vous cryptez le mot de passe dans la base et vous comparez la chaine saisie par l'utilisateur après cryptage avec celle de la base.
Idéalement, vous faites un hash salé du mot de passe que vous stockez. le Hash étant une empreinte unique, il est par nature, fiable et non réversible.

Voir une vidéo de PCSOFT (webinaire) qui met en oeuvre ce principe :


Cordialement,
Lionel
Publicado el 28,diciembre 2018 - 16:23
Lionel a utilisé son clavier pour écrire :
Bonjour, sans répondre vraiment à votre question, je me permet d'attirer
votre attention sur le fait qu'un bon système de cryptage de mot de passe ne
doit pas être réversible.
Vous cryptez le mot de passe dans la base et vous comparez la chaine saisie
par l'utilisateur après cryptage avec celle de la base.
Idéalement, vous faites un hash salé du mot de passe que vous stockez. le
Hash étant une empreinte unique, il est par nature, fiable et non réversible.

Voir une vidéo de PCSOFT (webinaire) qui met en oeuvre ce principe :


Cordialement,
Lionel


merci de ta réponse
mais dans la vraie vie ne pas pouvoir retrouver les mots de passe pour
gérer mes opérations, c'est mort de chez mort !

déjà que mes clients ont gueulé quand on a supprimé la récupération des
mots de passe par les administrateurs sur notre plate-forme ...

---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Miembro registrado
120 mensajes
Publicado el 28,diciembre 2018 - 18:10
Dans la vraie vie, il appartient aux responsables de la sécurité d'expliquer aux clients que c'est pour la protection de leur données.
Je mets à la disposition des admins une procédure simple de regénération de mot de passe pour un utilisateur l'ayant oublié.

Et je n'oublie pas que c'est directement ma responsabilité qui sera engagée si la base est récupérée avec des mots de passe exploitables.

Dans ton cas, mettre la fonction de décryptage sur le serveur SQL qui détient la base, reviens à donner la clé directement au pirate en cas d'accès au serveur.

RGPD...
Miembro registrado
2.682 mensajes
Publicado el 28,diciembre 2018 - 20:38
Bonjour,

Je suis de l'avis de Lionel. D'ailleurs quelque soit le site sur lequel tu fais une demande de récupération de mdp, tu ne ressaisis pas l'ancien. Les mots de passe ne sont connus de personne. Un mot de passe doit être un hash de manière à être irréversible, c'est la base de la sécurité des mots de passe n'en déplaise à tes clients.

--
Cordialement,

Philippe SAINT-BERTIN
Publicado el 04,enero 2019 - 15:02
Roumegou a pensé très fort :

merci de vos réponses.
j'entends vos arguments
cela va peut être me faire changer d'option; même si, encore, cela
risque d'être compliqué.

--
Roumegou Eric

---
Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com