hachage

copier un fichier hasher

a marqué ce sujet comme résolu.

Salut,

Est-ce que tu peux être plus explicite sur quel est ton besoin ?

Pour copier un fichier d’un répertoire à un autre tu as la fonction copy du module shutil.

Mais à quel endroit le hashage doit-il avoir lieu ?

  • Tu cherches à copier non pas le contenu di fichier mais son hash (ça me semble étrange) ?
  • Tu cherches à calculer le hash du fichier et vérifier s’il n’est pas déjà présent à la destination souhaitée (et éviter la copie si tel est le cas) ?
  • Tu cherches à vérifier après la copie si celle-ci s’est bien passée en comparant les hash ?

je veux copier un fichier d’un repertoire a vers un repertoire b, sauf que je veux qu’il soit haché dans le repertoire b.

Bonjour, comme le disait entwanne ta demande n’est pas très clair sur ce que tu veux faire, est que tu parles bien des fonctions de hachage, si c’est le cas tu peux utiliser le module python hashlib. Sinon il faudrait explicter ce que tu entends par "hachage"

kayou

Ça n’a aucun sens. Un hash est juste un nombre que tu calcules à partir d’un fichier, généralement avec les propriétés suivantes :

  • relativement rapide à calculer ;
  • un petit changement dans l’entrée résulte en un grand changement dans le nombre calculé ;
  • il est difficile de trouver une entrée qui correspond à un hash donné.

Ces propriétés font que c’est un bon candidat pour vérifier par exemple l’intégrité des données, typiquement après un téléchargement. C’est aussi beaucoup utilisé pour générer des clés de chiffrement à partir d’un mot de passe (typiquement avec du sel et de nombreuses itérations pour rendre le procédé plus lent et impossible à inverser en temps raisonnable), comme ce que fait PBKDF2.

Un hash contenant moins d’information que le fichier d’entrée (par exemple, un md5 est de 128 bits, sha512 est de 512 bit, c’est minuscule), il est impossible de retrouver le fichier d’origine à partir du hash. "Copier" un fichier en son hash n’a donc aucun intérêt, tu voudrais pas plutôt chiffrer (encrypt en anglais) le fichier ?

+4 -0

Je vais être la troisième quatrième personne à te dire que ce que tu dis n’a aucun sens.

On parle d’hasher un fichier quand on récupère son hash à travers une fonction de hashage précise. Par exemple, un fichier d’1Mio de zéro hasher par md5, ça donne ce hash : b6d81b360a5672d80c27430f39153e2c mais si tu prends la fonction de hashage sha512 tu auras ce hash: d6292685b380e338e025b3415a90fe8f9d39a46e7bdba8cb78c50a338cefca741f69e4e46411c32de1afdedfb268e579a51f81ff85e56f55b0ee7c33fe8c25c9.

Tu constates que le hash est sensiblement plus petit que fichier original (généralement). 1Mio vs 64o pour hashage sha512 dans notre cas.

Bref, le hash et le fichier original n’ont rien à voir en termes de taille et donc parler de copier un fichier hashé c’est très très abstrait comme concept.

Bref, soyons concrets.

Tu as un fichier a/fichier.ext, et on va définir une fonction de hashage, par exemple sha1. Que veux-tu obtenir ?

  • Un fichier b/fichier.ext avec le même contenu que a/fichier.ext ?
  • Un fichier b/fichier.ext qui contient le hash du fichier a/fichier.ext ?
  • Deux fichiers b/fichier.ext et b/fichier.ext.sha1, le premier qui contient la copie de a/fichier.ext et l’autre son hash ?

Ensuite, qu’as-tu essayé de faire ?

+0 -0

Merci merci pour cette information je prends note,je vais essayer d’écrire un code pour le chiffrement et je vous reviens.merci

Je vais être la troisième quatrième personne à te dire que ce que tu dis n’a aucun sens.

On parle d’hasher un fichier quand on récupère son hash à travers une fonction de hashage précise. Par exemple, un fichier d’1Mio de zéro hasher par md5, ça donne ce hash : b6d81b360a5672d80c27430f39153e2c mais si tu prends la fonction de hashage sha512 tu auras ce hash: d6292685b380e338e025b3415a90fe8f9d39a46e7bdba8cb78c50a338cefca741f69e4e46411c32de1afdedfb268e579a51f81ff85e56f55b0ee7c33fe8c25c9.

Tu constates que le hash est sensiblement plus petit que fichier original (généralement). 1Mio vs 64o pour hashage sha512 dans notre cas.

Bref, le hash et le fichier original n’ont rien à voir en termes de taille et donc parler de copier un fichier hashé c’est très très abstrait comme concept.

Bref, soyons concrets.

Tu as un fichier a/fichier.ext, et on va définir une fonction de hashage, par exemple sha1. Que veux-tu obtenir ?

Un fichier b/fichier.ext avec le même contenu que a/fichier.ext ? Un fichier b/fichier.ext qui contient le hash du fichier a/fichier.ext ? Deux fichiers b/fichier.ext et b/fichier.ext.sha1, le premier qui contient la copie de a/fichier.ext et l’autre son hash ?

Ensuite, qu’as-tu essayé de faire ?

ache

Hello,

Je crois comprendre que tu as masqué ton post car il était erroné (?). J’ai démasqué celui-ci car ce n’est en soi qu’une question.

Ce n’est pas nécessaire et c’est normal de se tromper. Personne ne va te jeter la pierre pour cela ici. ;-)

+2 -0

Petite précision : je ne sais pas ce que tu cherches à faire exactement, mais c’est sans doute très intéressant du point de vue de ce que tu vas apprendre. Par contre, considère d’office que ça ne doit pas être utilisé pour de vrai, les systèmes de chiffrement se doivent d’être robustes, et donc il te faudra encore un bon moment d’apprentissage avant d’être capable d’en faire un.

+1 -0

Bonjour,

Petite précision : je ne sais pas ce que tu cherches à faire exactement, mais c’est sans doute très intéressant du point de vue de ce que tu vas apprendre. Par contre, considère d’office que ça ne doit pas être utilisé pour de vrai, les systèmes de chiffrement se doivent d’être robustes, et donc il te faudra encore un bon moment d’apprentissage avant d’être capable d’en faire un.

Moté

Mais ce n’est pas pour ça qu’il ne faut pas essayer !

"C’est en ordinant qu’on devient ordinatant" (comme le dit le proverbe !) "Courage moussaillon !"

Cordialement

Mais ce n’est pas pour ça qu’il ne faut pas essayer 

Et c’est bien ce que dit @Moté tout en ayant raison de préciser que faire sa propre bibliothèque de crypto, ça ne peut avoir qu’un intérêt purement pédagogique : ça permet d’apprendre des choses, mais il faut absolument garder en tête qu’utiliser de la crypto faite "maison" dans un projet réel serait au mieux irresponsable.

+2 -0

En l’occurrence, je pense que c’est un soft de chiffrement, qui va utiliser une bibliothèque déjà existante. Mais ça implique de connaître les normes de chiffrement, de s’assurer de l’intégrité des fichiers, de sauvegarder correctement les clés de chiffrement, etc. C’est certainement très intéressant à faire, mais perso je n’utiliserais pas de système qui ne soit pas soutenu par un organisme et des devs fiables, et prêt à être utilisé en entreprise et tout.

Mais faut pas être découragé pour autant, c’est un super sujet ^^

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte