Passer de md5 à sha256

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Passer de md5 à sha256

Re: Passer de md5 à sha256

par @rthur » 13 janv. 2015, 11:42

Il est largement utilisé par exemple pour faire passer des applications pirates.
Effectivement, il est désormais possible de générer un fichier qui aurait un hash md5 identique à un autre.
Toutefois cela n'a aucun impact sur notre cas d'usage des mots de passe puisque le hash md5 du mot de passe original n'est pas connu par l'attaquant.

Re: Passer de md5 à sha256

par xTG » 13 janv. 2015, 10:29

Tu as raison mais tout de même je n'aime absolument pas cet algorithme de hash.
Il est largement utilisé par exemple pour faire passer des applications pirates.
On peut former une chaîne MD5 identique en modifiant le contenu en à peu près une heure quand on sait y faire.
https://ad-pdf.s3.amazonaws.com/papers/ ... .en_us.pdf
C'est souvent utilisé pour faire passer des applications contenant des backdoors.

Par contre du coup j'ai appris une chose concernant md5 et sha1 :
For those who wish to be cautious, electronic evidence using both MD5 and
another hash function such as SHA-1 or SHA-256 is still possible. Since these
hash functions are linearly independent of each other, the resulting uniqueness of
having both hash values would be the sum of the bits from each individual hash.

Re: Passer de md5 à sha256

par @rthur » 12 janv. 2015, 20:08

Désolé xTG, je ne suis pas d'accord avec toi, enfin pas complètement ;)
Imaginons que le hash md5 de deux mdp, soit X et Y, donne Z.
La probabilité d'avoir le même hash MD5 pour 2 mots de passe est tout de même quasi-inexistante.
Et même dans une improbable éventualité que cela arrive, cela ne pose aucun problème de sécurité selon moi.
Alors que si vous hasher X et Y en sha vous allez obtenir Z1 et Z2 ce qui en terme de sécurité est tout de même mieux...
Bien sûr que c'est mieux si l'on connait les deux mots de passe en clair, mais la contrainte de départ c'est de gérer l'existant dont on ne connait que le hash MD5... et là à part faire deux test via PHP d'abord en SHA1 et ensuite MD5 ; ou un double hashage, je ne vois pas d'autres solutions simples.

Re: Passer de md5 à sha256

par xTG » 12 janv. 2015, 17:51

Moi je serai plutôt du genre à faire cela :
A vue de nez, pour les utilisateurs ça devrait être transparent:
Ils rentrent leurs mots de passe habituels et c'est le codage qui suit qui change.
Quand il entre, l'utilisateur entre son mp.
Vérification traditionnelle (avec MD5)
Si ca rentre: manip automatique de changement de codage
Si ca ne rentre pas : vérification avec codage sha...
Il faut peut-être une table des utilisateurs n'ayant pas encore fait la mise à jour.
Car faire un hash d'un hash qui comporte lui même des doublons qui n'en sont pas des vrais c'est franchement bof. Cela force la convergence.
J'ai pas de rainbow table sous la main mais prenons l'image suivante :
Imaginons que le hash md5 de deux mdp, soit X et Y, donne Z.
Maintenant vous allez hasher Z en sha pour obtenir Zs.
Alors que si vous hasher X et Y en sha vous allez obtenir Z1 et Z2 ce qui en terme de sécurité est tout de même mieux...

Re: Passer de md5 à sha256

par @rthur » 12 janv. 2015, 16:05

un truc du genre:
<?PHP
$l = mysql_connect("localhost","root", "");
mysql_select_db ('pouf');

$r = "select * from p";

$res = mysql_query ($r, $l);
while ($line = mysql_fetch_assoc($res))
{
$nom = $line['nom'];
$passe = $line['pass'];
$passec = sha1 ($passe);//($passe,  PASSWORD_BCRYPT);
print "$passe $passec<br>";
$r1 = "Update p set pass = $passec where nom = $nom";
}
?>
Plus simplement c'est faisable direct en SQL :
UPDATE table SET pass = SHA1(pass);
et même pour du SHA-256 (+ secure que le SHA1) :
UPDATE table SET pass = SHA2(pass, 256);
Et si on veux ajouter un sel :
UPDATE table SET pass = SHA2(CONCAT(pass,'m0n_salt_sup3r_dur'), 256);

Re: Passer de md5 à sha256

par niconicochan » 12 janv. 2015, 09:55

Merci Sirakawa.
Je pense que c'est effectivement mieux pour tout le monde que les messages soient bien séparés.

Par contre, je te conseille fortement, hakazizi, de suivre en parallèle toute l'évolution de mon message
qui, je suis persuadé, t'aidera énormément vu ta question.

Toutes les questions que je pose dans mon message te concernent aussi, et je suis certain que tu trouveras plein
de choses très intéressantes a y apprendre par rapport à ce que tu as besoin de savoir.

Re: Passer de md5 à sha256

par sirakawa » 11 janv. 2015, 19:03

un truc du genre:
<?PHP
$l = mysql_connect("localhost","root", "");
mysql_select_db ('pouf');

$r = "select * from p";

$res = mysql_query ($r, $l);
while ($line = mysql_fetch_assoc($res))
{
$nom = $line['nom'];
$passe = $line['pass'];
$passec = sha1 ($passe);//($passe,  PASSWORD_BCRYPT);
print "$passe $passec<br>";
$r1 = "Update p set pass = $passec where nom = $nom";
}
?>
J'ai vu au passage password_hash et password_verify qui me semblent bons,

Re: Passer de md5 à sha256

par @rthur » 11 janv. 2015, 18:42

Une bonne pratique également, c'est de rajouter un sel dans ton hashage.

Re: Passer de md5 à sha256

par hakazizi » 11 janv. 2015, 17:47

Ou alors tu fais un double hashage pour tout le monde : SHA-256(MD5($mdp))
c'est peut-être le plus simple il faut que je créer un piti code dans le genre
while($membre=mysql-query("SELECT id,mdp FROM membre"))
{
extract($membre);
mysql_query("UPDATE membre SET mdp='$mdp' WHERE id=$id ");
}
merci

Re: Passer de md5 à sha256

par @rthur » 11 janv. 2015, 15:29

Ou alors tu fais un double hashage pour tout le monde : SHA-256(MD5($mdp))

Re: Passer de md5 à sha256

par sirakawa » 11 janv. 2015, 15:27

A vue de nez, pour les utilisateurs ça devrait être transparent:
Ils rentrent leurs mots de passe habituels et c'est le codage qui suit qui change.
Quand il entre, l'utilisateur entre son mp.
Vérification traditionnelle (avec MD5)
Si ca rentre: manip automatique de changement de codage
Si ca ne rentre pas : vérification avec codage sha...
Il faut peut-être une table des utilisateurs n'ayant pas encore fait la mise à jour.

Passer de md5 à sha256

par sirakawa » 11 janv. 2015, 15:19

bonjour
j'ai sur mon site les mots de passe en md5 le code date de 6 ans.
comment faire pour passer du md5 au SHA-256.
modifier la clé de cryptage pour ceux déjà inscrit ?
je pourrais faire également une double vérification, dans ce cas les anciens membres seront moins bien protéger que les nouveaux...
ou encore faire SHA-256 sur un Md5.
je ne sait pas trop quoi faire.
merci
xTG a écrit:3) Le MD5 est devenu dépassé à notre ère (à cause des rainbow table), il est préférable d'utiliser SHA-256.
Pour l'utiliser : crypt