Je me demandais si MD5, Sha1 et Anhands renvoient des valeurs uniques. P>
Par exemple, En raison de cela, lorsque nous stockons les mots de passe des utilisateurs, ils peuvent entrer leur mot de passe d'origine ou un certain super long, que personne ne sait. p>
Est-ce correct, ou ces algorithmes de hachage fournissent des résultats vraiment uniques - je suis tout à fait sûr qu'il n'est guère possible. P> SHA1 () Code> pour Test Code> Retours A94A8FE5CCB19BA61C4C0873D391E987982FBBD3 CODE>, qui est de 40 caractères. Donc, SHA1 pour les chaînes supérieures à 40 caractères doit être la même (bien sûr, elle est brouillée, car l'entrée donnée peut contenir des espaces blanchisseurs et des caractères spéciaux, etc.). P>
5 Réponses :
(Remarque: vous posez des questions sur hachage fonctions, pas cryptage ). P>
Il leur est impossible d'être unique, par définition. Ils apportent une grande entrée et réduisent sa taille. Cela suit évidemment, alors, qu'ils ne peuvent pas représenter toutes les informations qu'ils ont compressées. Donc non, ils ne fournissent pas de résultats "vraiment uniques". P>
Qu'est-ce qu'ils em> font em> sont cependant "résistant aux collisions". C'est à dire. Ils essaient de montrer que deux données légèrement différentes produisent un hachage significativement différent. P>
Les algorithmes de hachage ne garantissent jamais un résultat différent pour une entrée différente. C'est pourquoi le hachage est toujours utilisé comme un "cryptage" à sens unique. P>
Mais vous devez être réaliste, un algorithme de hachage de 160 bits peut avoir 2 ^ 160 combinaisons possibles, ce qui est ... beaucoup! (1 avec 48 zéros) p>
Ce ne sont pas des fonctions de cryptage, mais des hachages. p>
hachage, par définition, peut avoir deux chaînes différentes en collision (carte à la même valeur) pour les raisons mêmes que vous mentionnez. Mais cela n'est généralement pas pertinent car: P>
Ces deux moyens que vous ne pouvez pas prendre un hasch et générer facilement une des cordes qui la plantaient. p>
SHA1 n'est pas un algorithme de cryptage, mais un Fonction de hachage cryptographique . P>
Vous avez raison - car il mesure une entrée arbitraire longue sur une haqueau de taille fixe, il peut y avoir des collisions. Mais l'idée d'un la fonction de hachage cryptographique em> est de rendre impossible de créer de telles collisions "à la demande". C'est pourquoi nous les appelons fonctions de hasch à sens unique em> aussi. P>
Quote (source) : P>
La fonction de hachage cryptographique idéale a quatre propriétés principales ou significatives:
* Il est facile de calculer la valeur de hachage pour tout message donné,
* Il est infaisable de trouver un message qui a un hachage donné,
* Il est infaisable de modifier un message sans changer son hachage,
* Il est infaisable de trouver deux messages différents avec le même hachage. P>
blockQuote>
algorithmes de hachage (ce que vous parlez de) ne fournissez pas de résultats uniques. Ce que vous faites référence s'appelle le Principe du pigeoneferrer . Le nombre d'entrées dépasse le nombre de sorties, de sorte que plusieurs entrées doivent être mappées sur la même sortie. C'est pourquoi plus le hachage de sortie est long, car il existe moins de nombre d'entrées mappées sur une sortie. P>
Cryptage Quelque chose doit fournir un résultat unique, car vous pouvez chiffrer un message et le déchiffrer et Obtenez le même message. P>
Ce n'est pas unique, c'est juste "assez unique"
@Rex m: Gardez à l'esprit, ce n'est pas veux I> d'être unique, car si cela impliquerait une cartographie directe, ce qui signifierait qu'elle peut être inversée.
Personne ici a vraiment mentionné, mais SHA1 est le algorithme erroné i> à utiliser pour le hachage de mot de passe, BCRYPT est significativement plus sûr. Assurez-vous de lire Stackoverflow. com / questions / 800685 / ...
Sam Oui, vous avez raison (SHA1 est mort), mais vos commentaires dans ce lien sont incroyablement mauvaises formes, IMHO: je conseillerais aux personnes revues: VALERIAREURORA.ORG/HASH.HTML et utilisez les algorithmes approuvés par NIST (c'est une famille SHA2) à des fins cryptographiques.
@Silky, si vous faites une première passe de la recherche de fichiers en double md5, MD5 est bien, si vous utilisez des mots de passe de hachage, la famille SHA2 est une mauvaise cause que c'est rapide. Bcrypt est lent qui le rend beaucoup moins vulnérable aux attaques de la force brute.
@Silky, également si vous lisez explicitement, je dis à peu près dites, si vous avez besoin d'une fonction de hachage "sécurisée", n'utilisez pas MD5. Parfois, vous devez avoir des trucs hash et n'avez pas besoin de sécurité.
@Sam: Cela va sans dire qu'un hachage cryptographique cassé est toujours bon à des fins non cryptographiques. La deuxième partie de votre phrase n'a pas de sens.
@silky Mes recommandation est "Utilisez MD5 si vous avez besoin de la vitesse / de la taille et de ne pas vous soucier des attaques d'anniversaire ou des attaques pré-image." Ou en anglais, utilisez MD5 si vous n'avez pas besoin d'un hachage cryptographiquement sécurisé, je ne suivons pas ce qui est si controversé sur ma recommandation.
@Sam: Ce n'est pas l'endroit où avoir cette discussion. C'est trop complexe, mais ma position est: n'utilisez pas un hasch brisé pour rien. Même la comparaison des fichiers (c'est l'attaque classique sur MD5 de toute façon, vous auriez donc besoin de réfléchir à des résultats qu'un clash aurait dans votre système donné. De plus, si vous passez en revue mon lien, vous trouverez votre avis dans la colonne "Non -expert ". Je ne veux pas dire cela comme une insulte, mais je ne pense pas que ce soit une stratégie sage. Mon commentaire initial était en ce qui concerne votre message principal que je n'ai pas le temps de commenter de manière intéressante Pour le moment. J'espère que j'ai un peu clarifié.
@silky ... Et vous impliquez que des choses sont a-ok si vous utilisez SHA256 + sel pour votre schéma de stockage de mot de passe, ce que l'utilisateur fait et c'est faux Chargen.matasano.com/chargen/ 2007/9/7 / ...
@Sam: Veuillez commencer un fil sur l'une des listes de messagerie de sécurité concernées si vous souhaitez poursuivre cette discussion (je le verrai). C'est hors du sujet à ce fil.
@silky pour citer l'auteur de cet article "Lorsque nous stockons des mots de passe des utilisateurs", c'est totalement sur la succursale. @Mikulas ne va pas lire vos listes de messagerie de sécurité
@Sam: J'ai essayé d'être poli et patient avec vous, mais c'est ridicule. Je ne sais pas ce qu'il va prendre pour que vous compreniez que vous n'aurez aucun accord de mon de vos points dans ce fil. Je ne répondrai pas plus loin; N'hésitez pas à me contacter hors ligne ou via la manière dont je l'ai déjà expliqué que vous êtes vraiment intéressé par la discussion. Je soupçonne que tu n'es pas. Vous n'avez pas non plus totalement compris (il semble que la position de MataSano.
@Sam: Il y a des alternatives plus rapides à MD5 si vous n'avez pas besoin d'un "hachage cryptographiquement sécurisé" (c'est-à-dire que vous avez juste besoin d'une somme de contrôle), telle que CRC32