On sait queY a-t-il une différence entre md5 et sha1 dans cette situation?
1. if (md5(a) == md5(b) )
2. then (md5(a.z) == md5(b.z))
3. but (md5(z.a) != md5(z.b))
où les points concaténer les chaînes.
EDIT ---
Vous pouvez trouver ici a
et b
:
http://www.mscs.dal.ca/~selinger/md5collision/
Vérifiez ces liens:
hexpaste.com/qzNCBRYb/1 - c'est a.md5(a)."kutykurutty"
hexpaste.com/mSXMl13A/1 - c'est b.md5(b)."kutykurutty"
Ils partager le même hachage MD5, mais ils sont différents. Mais vous pouvez appeler ces chaînes a'
et b'
, car ils ont le même md5.
--- EDIT
Que se passe dans la deuxième rangée si nous changeons tous les md5 à SHA1? Alors:
1. if (sha1(c) == sha1(d) )
2. then (sha1(c.z) ?= sha1(d.z))
Je ne pouvais pas trouver deux chaînes différentes avec la même SHA1, c'est la raison pour laquelle je vous pose cette question. Y a-t-il d'autres "règles" intéressantes à propos de sha1?
En fait, tout z fera l'affaire. J'ai trouvé a et b sur ce site: http://www.mscs.dal.ca/~selinger/md5collision/ Si vous mettez quelque chose de même après ces "chaînes", vous finirez avec le même md5. Ma question ne concerne pas la sécurité, je suis simplement curieux. Cochez ces cases: http://hexpaste.com/qzNCBRYb/1 http: // hexpaste.com/mSXMl13A/1 Btw: Je parle de différentes chaînes (a, b et c, d). – Vili
@Vili: Je vois, je ne savais pas que les collisions sont si mauvaises pour MD5. Quoi qu'il en soit SHA1 est considéré comme sûr, ce qui implique que la génération de collision est si difficile que personne ne peut l'essayer dans un délai raisonnable. – sharptooth