Bonjour,
je fais vraiment ds la comprenette difficilette là dessus.
Voilà ma fonction MoncalculMD5
PROCEDURE MonCalculMd5(pCh)
wch,Pwdmd5 est chaîne
wch=HashChaîne(HA_MD5_128,pCh)
i,imax est un entier
Pwdmd5=""
imax=Taille(wch)
POUR i=1 A imax
Pwdmd5+=NumériqueVersChaîne(Asc(wch[[i]]), "02X")
FIN
Pwdmd5=Minuscule(Pwdmd5)
RENVOYER Pwdmd5
Impec ! ça me donne une codif qui est exactement à ce que l'on a dans les
mots de passe fillezilla.
j'en déduis donc que c'est assez standard.
j'en déduis aussi que l'on doit pouvoir faire le chemin inverse.
Moi je voudrais md5VersChaine, maintenant ou comment reconvertir un pwd dans
sa valeur d'origine.
... et là je ne trouve pas.
Merci de vos réponses.
Bonjour,
je fais vraiment ds la comprenette difficilette là dessus.
Voilà ma fonction MoncalculMD5
PROCEDURE MonCalculMd5(pCh)
wch,Pwdmd5 est chaîne
wch=HashChaîne(HA_MD5_128,pCh)
i,imax est un entier
Pwdmd5=""
imax=Taille(wch)
POUR i=1 A imax
Pwdmd5+=NumériqueVersChaîne(Asc(wch[[i]]), "02X")
FIN
Pwdmd5=Minuscule(Pwdmd5)
RENVOYER Pwdmd5
Impec ! ça me donne une codif qui est exactement à ce que l'on a dans les
mots de passe fillezilla.
j'en déduis donc que c'est assez standard.
j'en déduis aussi que l'on doit pouvoir faire le chemin inverse.
Moi je voudrais md5VersChaine, maintenant ou comment reconvertir un pwd dans
sa valeur d'origine.
... et là je ne trouve pas.
Merci de vos réponses.
Bonjour,
je fais vraiment ds la comprenette difficilette là dessus.
Voilà ma fonction MoncalculMD5
PROCEDURE MonCalculMd5(pCh)
wch,Pwdmd5 est chaîne
wch=HashChaîne(HA_MD5_128,pCh)
i,imax est un entier
Pwdmd5=""
imax=Taille(wch)
POUR i=1 A imax
Pwdmd5+=NumériqueVersChaîne(Asc(wch[[i]]), "02X")
FIN
Pwdmd5=Minuscule(Pwdmd5)
RENVOYER Pwdmd5
Impec ! ça me donne une codif qui est exactement à ce que l'on a dans les
mots de passe fillezilla.
j'en déduis donc que c'est assez standard.
j'en déduis aussi que l'on doit pouvoir faire le chemin inverse.
Moi je voudrais md5VersChaine, maintenant ou comment reconvertir un pwd dans
sa valeur d'origine.
... et là je ne trouve pas.
Merci de vos réponses.
Roumégou Eric a formulé la demande :Bonjour,
je fais vraiment ds la comprenette difficilette là dessus.
Voilà ma fonction MoncalculMD5
PROCEDURE MonCalculMd5(pCh)
wch,Pwdmd5 est chaîne
wch=HashChaîne(HA_MD5_128,pCh)
i,imax est un entier
Pwdmd5=""
imax=Taille(wch)
POUR i=1 A imax
Pwdmd5+=NumériqueVersChaîne(Asc(wch[[i]]), "02X")
FIN
Pwdmd5=Minuscule(Pwdmd5)
RENVOYER Pwdmd5
Impec ! ça me donne une codif qui est exactement à ce que l'on a dans les
mots de passe fillezilla.
j'en déduis donc que c'est assez standard.
j'en déduis aussi que l'on doit pouvoir faire le chemin inverse.
Moi je voudrais md5VersChaine, maintenant ou comment reconvertir un pwd
dans sa valeur d'origine.
... et là je ne trouve pas.
Merci de vos réponses.
en fait je voudrais faire exactement ce que fait ce site
http://www.authsecu.com/decrypter-dechiffrer-cracker-hash-md5/decrypter-dechiffrer-cracker-hash-md5.php
Roumégou Eric a formulé la demande :
Bonjour,
je fais vraiment ds la comprenette difficilette là dessus.
Voilà ma fonction MoncalculMD5
PROCEDURE MonCalculMd5(pCh)
wch,Pwdmd5 est chaîne
wch=HashChaîne(HA_MD5_128,pCh)
i,imax est un entier
Pwdmd5=""
imax=Taille(wch)
POUR i=1 A imax
Pwdmd5+=NumériqueVersChaîne(Asc(wch[[i]]), "02X")
FIN
Pwdmd5=Minuscule(Pwdmd5)
RENVOYER Pwdmd5
Impec ! ça me donne une codif qui est exactement à ce que l'on a dans les
mots de passe fillezilla.
j'en déduis donc que c'est assez standard.
j'en déduis aussi que l'on doit pouvoir faire le chemin inverse.
Moi je voudrais md5VersChaine, maintenant ou comment reconvertir un pwd
dans sa valeur d'origine.
... et là je ne trouve pas.
Merci de vos réponses.
en fait je voudrais faire exactement ce que fait ce site
http://www.authsecu.com/decrypter-dechiffrer-cracker-hash-md5/decrypter-dechiffrer-cracker-hash-md5.php
Roumégou Eric a formulé la demande :Bonjour,
je fais vraiment ds la comprenette difficilette là dessus.
Voilà ma fonction MoncalculMD5
PROCEDURE MonCalculMd5(pCh)
wch,Pwdmd5 est chaîne
wch=HashChaîne(HA_MD5_128,pCh)
i,imax est un entier
Pwdmd5=""
imax=Taille(wch)
POUR i=1 A imax
Pwdmd5+=NumériqueVersChaîne(Asc(wch[[i]]), "02X")
FIN
Pwdmd5=Minuscule(Pwdmd5)
RENVOYER Pwdmd5
Impec ! ça me donne une codif qui est exactement à ce que l'on a dans les
mots de passe fillezilla.
j'en déduis donc que c'est assez standard.
j'en déduis aussi que l'on doit pouvoir faire le chemin inverse.
Moi je voudrais md5VersChaine, maintenant ou comment reconvertir un pwd
dans sa valeur d'origine.
... et là je ne trouve pas.
Merci de vos réponses.
en fait je voudrais faire exactement ce que fait ce site
http://www.authsecu.com/decrypter-dechiffrer-cracker-hash-md5/decrypter-dechiffrer-cracker-hash-md5.php
Bonjour,
je fais vraiment ds la comprenette difficilette là dessus.
Voilà ma fonction MoncalculMD5
Moi je voudrais md5VersChaine, maintenant ou comment reconvertir un pwd dans
sa valeur d'origine.
Bonjour,
je fais vraiment ds la comprenette difficilette là dessus.
Voilà ma fonction MoncalculMD5
Moi je voudrais md5VersChaine, maintenant ou comment reconvertir un pwd dans
sa valeur d'origine.
Bonjour,
je fais vraiment ds la comprenette difficilette là dessus.
Voilà ma fonction MoncalculMD5
Moi je voudrais md5VersChaine, maintenant ou comment reconvertir un pwd dans
sa valeur d'origine.
Coucou
Il existe des "rainbow tables", listes de chaines de caractères avec
leur équivalent en MD5.
Mais je crois que l'emploi de celles-ci s'apparente à du piratage.
Tapez "rainbow MD5" dans g00gle pour avoir un aperçu.
See you
Yannick
Coucou
Il existe des "rainbow tables", listes de chaines de caractères avec
leur équivalent en MD5.
Mais je crois que l'emploi de celles-ci s'apparente à du piratage.
Tapez "rainbow MD5" dans g00gle pour avoir un aperçu.
See you
Yannick
Coucou
Il existe des "rainbow tables", listes de chaines de caractères avec
leur équivalent en MD5.
Mais je crois que l'emploi de celles-ci s'apparente à du piratage.
Tapez "rainbow MD5" dans g00gle pour avoir un aperçu.
See you
Yannick
Coucou
Il existe des "rainbow tables", listes de chaines de caractères avec
leur équivalent en MD5.
Mais je crois que l'emploi de celles-ci s'apparente à du piratage.
Tapez "rainbow MD5" dans g00gle pour avoir un aperçu.
Coucou
Il existe des "rainbow tables", listes de chaines de caractères avec
leur équivalent en MD5.
Mais je crois que l'emploi de celles-ci s'apparente à du piratage.
Tapez "rainbow MD5" dans g00gle pour avoir un aperçu.
Coucou
Il existe des "rainbow tables", listes de chaines de caractères avec
leur équivalent en MD5.
Mais je crois que l'emploi de celles-ci s'apparente à du piratage.
Tapez "rainbow MD5" dans g00gle pour avoir un aperçu.
Voilà un petit article très intéressant pour ceux qui s'intéressent au
stockage et à la protection de mot de passe :
http://www.commentcamarche.net/faq/sujet-8821-comment-bien-stocker-et-verifier-un-mot-de-passe
****************************************************************
***Comment bien stocker et vérifier un mot de passe***
****************************************************************
Publié par sebsauvage (Commentcamarche.com) le mardi 16 juin 2009 à
09:46:43
Si vous développez une application qui doit gérer les mots de passe,
il est important de bien le faire, sous peine de risquer le piratage
de votre système et la compromission des données de vos utilisateurs.
Il existe de bonnes pratiques pour stocker un mot de passe.
****************************************************************
La bonne manière de stocker
****************************************************************
Stockez le login et hash(login+salt+motdepasse)
Pseudo-code: passwordHash = MD5( login + "zo5pro
$1pvkhj6*cz4a8ùtvb#ui4oeuio" + motdepasse )
Stockez login et passwordHash. Ne stockez pas motdepasse.
****************************************************************
Pourquoi un hash ?
****************************************************************
Il ne faut jamais stocker le mot de passe en clair.
Risque: Si quelqu'un s'introduit dans votre base de mots de passe, il
pourrait les récupérer directement et les utiliser.
Protection: Le hash permet de calculer une empreinte du mot de passe.
Comme l'algorithme n'est pas réversible, on ne peut pas retrouver
immédiatement le mot de passe à partir du hash.
C'est pour cela qu'on utilise un hash cryptographique. Typiquement
MD5, SHA-1 ou autre (SHA-256, SHA-512...)
Ne jamais utiliser de CRC ou CRC32.
****************************************************************
Pourquoi un salt ?
****************************************************************
Les rainbow-tables sont de grosses tables contenant des hash (MD5 et
autres) précalculées.
Cela permet de retrouver très rapidement le mot de passe qui a donné
un hash précis.
Risque: Si vous utilisez juste MD5(motdepasse), les rainbow-tables
permettent de retrouver le mot de passe correspondant au MD5 en
quelques minutes, voire quelques secondes.
Protection: En utilisant un salt, cela rend les rainbow-tables
inutiles. Le salt est une valeur aléatoire, unique et différente pour
chaque mot de passe. Pour chaque mot de passe il faut stocker salt, h
(salt,password), avec par exemple salt = random()
****************************************************************
Pourquoi ajouter le login ?
****************************************************************
Si vous stockez juste MD5(salt+motdepasse) ou MD5(motdepasse), cela
veut dire que deux utilisateurs ayant le même mot de passe auront le
même hash.
Risque: On peut repérer très facilement les utilisateurs ayant le même
mot de passe. Si un utilisateur est compromis, cela permet d'accéder
immédiatement à d'autres utilisateurs (qui ont peut-être des droits
supérieurs).
Protection: En ajoutant le login avant de hasher, la MD5 résultante
sera différente pour chaque utilisateur, même s'ils ont le même mot de
passe.
****************************************************************
Vérification
****************************************************************
Lorsque vous recevez login et mot de passe, il vous suffit de refaire
le même calcul:
Rechercher dans votre base le hash correspondant à ce login
Comparer la valeur avec hash(login+salt+motdepasse)
Si les deux hash sont identiques, le mot de passe entré est correct.
Voilà un petit article très intéressant pour ceux qui s'intéressent au
stockage et à la protection de mot de passe :
http://www.commentcamarche.net/faq/sujet-8821-comment-bien-stocker-et-verifier-un-mot-de-passe
****************************************************************
***Comment bien stocker et vérifier un mot de passe***
****************************************************************
Publié par sebsauvage (Commentcamarche.com) le mardi 16 juin 2009 à
09:46:43
Si vous développez une application qui doit gérer les mots de passe,
il est important de bien le faire, sous peine de risquer le piratage
de votre système et la compromission des données de vos utilisateurs.
Il existe de bonnes pratiques pour stocker un mot de passe.
****************************************************************
La bonne manière de stocker
****************************************************************
Stockez le login et hash(login+salt+motdepasse)
Pseudo-code: passwordHash = MD5( login + "zo5pro
$1pvkhj6*cz4a8ùtvb#ui4oeuio" + motdepasse )
Stockez login et passwordHash. Ne stockez pas motdepasse.
****************************************************************
Pourquoi un hash ?
****************************************************************
Il ne faut jamais stocker le mot de passe en clair.
Risque: Si quelqu'un s'introduit dans votre base de mots de passe, il
pourrait les récupérer directement et les utiliser.
Protection: Le hash permet de calculer une empreinte du mot de passe.
Comme l'algorithme n'est pas réversible, on ne peut pas retrouver
immédiatement le mot de passe à partir du hash.
C'est pour cela qu'on utilise un hash cryptographique. Typiquement
MD5, SHA-1 ou autre (SHA-256, SHA-512...)
Ne jamais utiliser de CRC ou CRC32.
****************************************************************
Pourquoi un salt ?
****************************************************************
Les rainbow-tables sont de grosses tables contenant des hash (MD5 et
autres) précalculées.
Cela permet de retrouver très rapidement le mot de passe qui a donné
un hash précis.
Risque: Si vous utilisez juste MD5(motdepasse), les rainbow-tables
permettent de retrouver le mot de passe correspondant au MD5 en
quelques minutes, voire quelques secondes.
Protection: En utilisant un salt, cela rend les rainbow-tables
inutiles. Le salt est une valeur aléatoire, unique et différente pour
chaque mot de passe. Pour chaque mot de passe il faut stocker salt, h
(salt,password), avec par exemple salt = random()
****************************************************************
Pourquoi ajouter le login ?
****************************************************************
Si vous stockez juste MD5(salt+motdepasse) ou MD5(motdepasse), cela
veut dire que deux utilisateurs ayant le même mot de passe auront le
même hash.
Risque: On peut repérer très facilement les utilisateurs ayant le même
mot de passe. Si un utilisateur est compromis, cela permet d'accéder
immédiatement à d'autres utilisateurs (qui ont peut-être des droits
supérieurs).
Protection: En ajoutant le login avant de hasher, la MD5 résultante
sera différente pour chaque utilisateur, même s'ils ont le même mot de
passe.
****************************************************************
Vérification
****************************************************************
Lorsque vous recevez login et mot de passe, il vous suffit de refaire
le même calcul:
Rechercher dans votre base le hash correspondant à ce login
Comparer la valeur avec hash(login+salt+motdepasse)
Si les deux hash sont identiques, le mot de passe entré est correct.
Voilà un petit article très intéressant pour ceux qui s'intéressent au
stockage et à la protection de mot de passe :
http://www.commentcamarche.net/faq/sujet-8821-comment-bien-stocker-et-verifier-un-mot-de-passe
****************************************************************
***Comment bien stocker et vérifier un mot de passe***
****************************************************************
Publié par sebsauvage (Commentcamarche.com) le mardi 16 juin 2009 à
09:46:43
Si vous développez une application qui doit gérer les mots de passe,
il est important de bien le faire, sous peine de risquer le piratage
de votre système et la compromission des données de vos utilisateurs.
Il existe de bonnes pratiques pour stocker un mot de passe.
****************************************************************
La bonne manière de stocker
****************************************************************
Stockez le login et hash(login+salt+motdepasse)
Pseudo-code: passwordHash = MD5( login + "zo5pro
$1pvkhj6*cz4a8ùtvb#ui4oeuio" + motdepasse )
Stockez login et passwordHash. Ne stockez pas motdepasse.
****************************************************************
Pourquoi un hash ?
****************************************************************
Il ne faut jamais stocker le mot de passe en clair.
Risque: Si quelqu'un s'introduit dans votre base de mots de passe, il
pourrait les récupérer directement et les utiliser.
Protection: Le hash permet de calculer une empreinte du mot de passe.
Comme l'algorithme n'est pas réversible, on ne peut pas retrouver
immédiatement le mot de passe à partir du hash.
C'est pour cela qu'on utilise un hash cryptographique. Typiquement
MD5, SHA-1 ou autre (SHA-256, SHA-512...)
Ne jamais utiliser de CRC ou CRC32.
****************************************************************
Pourquoi un salt ?
****************************************************************
Les rainbow-tables sont de grosses tables contenant des hash (MD5 et
autres) précalculées.
Cela permet de retrouver très rapidement le mot de passe qui a donné
un hash précis.
Risque: Si vous utilisez juste MD5(motdepasse), les rainbow-tables
permettent de retrouver le mot de passe correspondant au MD5 en
quelques minutes, voire quelques secondes.
Protection: En utilisant un salt, cela rend les rainbow-tables
inutiles. Le salt est une valeur aléatoire, unique et différente pour
chaque mot de passe. Pour chaque mot de passe il faut stocker salt, h
(salt,password), avec par exemple salt = random()
****************************************************************
Pourquoi ajouter le login ?
****************************************************************
Si vous stockez juste MD5(salt+motdepasse) ou MD5(motdepasse), cela
veut dire que deux utilisateurs ayant le même mot de passe auront le
même hash.
Risque: On peut repérer très facilement les utilisateurs ayant le même
mot de passe. Si un utilisateur est compromis, cela permet d'accéder
immédiatement à d'autres utilisateurs (qui ont peut-être des droits
supérieurs).
Protection: En ajoutant le login avant de hasher, la MD5 résultante
sera différente pour chaque utilisateur, même s'ils ont le même mot de
passe.
****************************************************************
Vérification
****************************************************************
Lorsque vous recevez login et mot de passe, il vous suffit de refaire
le même calcul:
Rechercher dans votre base le hash correspondant à ce login
Comparer la valeur avec hash(login+salt+motdepasse)
Si les deux hash sont identiques, le mot de passe entré est correct.
"MD5(motpasse+salt) est le principe du stockage du mot de passe de
linux, et deux utilisateurs ayant le même mot de passe n'ont pas le
même hash."
Impossible !
Ou alors il manque une précision. Peut-être qu'un salt propre à chaque
utilisateur est employé chez linux. Ce qui revient à hash((login+salt)
+motdepasse).
"MD5(motpasse+salt) est le principe du stockage du mot de passe de
linux, et deux utilisateurs ayant le même mot de passe n'ont pas le
même hash."
Impossible !
Ou alors il manque une précision. Peut-être qu'un salt propre à chaque
utilisateur est employé chez linux. Ce qui revient à hash((login+salt)
+motdepasse).
"MD5(motpasse+salt) est le principe du stockage du mot de passe de
linux, et deux utilisateurs ayant le même mot de passe n'ont pas le
même hash."
Impossible !
Ou alors il manque une précision. Peut-être qu'un salt propre à chaque
utilisateur est employé chez linux. Ce qui revient à hash((login+salt)
+motdepasse).