2010-04-03 6 views
1

Disons qu'il ya un fichier appelé myfile.txt avec le contenu suivant:Fichier hash: change-t-il pour le même contenu mais dans un ordre différent?

un deux trois

Un autre fichier appelé yourfile.txt avec le contenu suivant:

deux trois un

Est-ce que le SHA-1 hash être le même pour ces deux fichiers, parce que le contenu est le même mais dans un ordre différent?

+0

Avertissement: SHA-1 n'est pas considéré comme sécurisé. Il est possible avec un certain effort de générer un fichier arbitraire qui a le même hachage qu'un fichier cible. C'est probablement bien juste pour télécharger des images qui ne sont pas très importantes, mais vous devez être conscient des possibilités. –

+0

@John: Merci pour le conseil, mais mon utilisation ici consiste à empêcher le téléchargement de fichiers en double. Donc, si quelqu'un essaie de reproduire le hachage, c'est juste qu'ils ne peuvent pas télécharger le fichier. Je serais inquiet si c'était le contraire, comme le même fichier peut être téléchargé avec un hachage différent. Quoi qu'il en soit, que suggérez-vous pour un hachage sécurisé? Peut être utile pour une utilisation future. – Nirmal

+0

@John: ce que vous décrivez (trouver un fichier qui hash à une cible donnée) s'appelle une "attaque pré-image". Si vous savez comment faire cela pour SHA-1, alors, publiez-le et devenez célèbre. Parce que maintenant, le meilleur que les cryptographes réalisent sur SHA-1 est une attaque de collision théorique (dans laquelle il n'y a pas de "cible" prédéfinie) qui, tout en étant "plus facile" qu'une attaque générique, est encore substantiellement coûteuse de PC pendant plusieurs mois). –

Répondre

3

Non, ce sera différent. La plupart des bons algorithmes de hachage à usage général prennent en compte l'ordre. A propos des seules fonctions de hachage couramment utilisées qui ne sont pas de simples checksums.

2

Non, ce sera différent. Les hachages travaillent généralement de manière itérative sur une série d'octets.

Bien sûr, vous pouvez simplement l'essayer;)

+0

Oui, je pourrais l'essayer, mais je suis sur la machine d'un client maintenant et un doute soudain surgit en parallèle :) – Nirmal

1

dépend de l'algorithme de hachage. Je peux en créer un dès maintenant qui renvoie deux hachages égaux pour les deux fichiers.

Mais puisque vous avez spécifiquement posé des questions sur SHA-1 alors oui, ils seront complètement différents.

 
    SHA1("one two three") = a10600b129253b1aaaa860778bef2043ee40c715 
    SHA1("two three one") = 5b836799b259835e762c93964a68b958eb19461a 
+0

Pour un hachage "sécurisé", il faudrait que ce soit différent, ou ce ne serait pas trop sécurisé. Pour n'importe quel hash, vous pouvez créer ce que vous voulez. – WhirlWind

+0

Si j'en crée un par définition, il ne peut pas être "vieux", n'est-ce pas? :) Quoi qu'il en soit oui bien sûr, tout algorithme de hachage sérieux produira des résultats différents. –

+0

Ma principale raison de demander ceci est d'empêcher les utilisateurs de télécharger le même fichier deux fois à tout moment. Mais soudainement demandé ce qui se passerait si le contenu juste échanger. Maintenant avec les résultats, mon dimanche est sauvé! – Nirmal

1

hash « Cryptographic » sont conçus pour détecter les changements comme transpositions, sinon quelqu'un pourrait prendre un message de paiement électronique et de modifier le montant 1900,00 $ à 9100,00 $ sans détection (par le hachage de toute façon), ce qui irait à l'encontre type de but .

Questions connexes