10
votes

Valeur de malash python

Je suis un débutant au python. Puis-je me malhoc, ou plutôt comment puis-je caresser une valeur? J'utilise la fonction Hash STD (). Ce que je voudrais faire, c'est que le premier hachage a une valeur, envoyez-le quelque part, puis à le déshabiller comme tel: xxx

thx à l'avance


4 commentaires

Parlez-vous de la sérialisation?


Pourquoi veux-tu faire cela? Essayez-vous d'accélérer l'envoi de données de 3 Go en envoyant uniquement le hachage, puis de le casser à l'autre extrémité? Ça ne va pas travailler ...


Si cette méthode est viable, de nombreux systèmes cryptiques seraient morts.


Hé, Google a un logo presque dans Couleurs d'arc-en-ciel , vous pouvez l'utiliser! :)


4 Réponses :


7
votes

Vous ne pouvez pas "dédaisser" des données, les fonctions de hachage sont irréversibles en raison du principe du pigeonhole

http://fr.wikipedia.org/wiki/hash_function
http://fr.wikipedia.org/wiki/pigeonhole_principle

Je pense que ce que vous recherchez un cryptage / décryptage. (Ou compression ou sérialisation comme mentionné dans d'autres réponses / commentaires.)


1 commentaires

Ou compression / décompression.



0
votes

Ce n'est pas possible en général. Une fonction de hachage perd nécessairement des informations et Python's hachage n'est pas une exception.


0 commentaires


15
votes

Même si j'ai presque 8 ans de retard avec une réponse, je tiens à dire il est possible de dédouiller les données (non pas avec la fonction STD HASH () Fonction ).

Les réponses précédentes décrivent toutes les fonctions de hachage cryptographiques , qui par conception doivent calculer des hachages impossibles (ou au moins très difficiles à panner).

Cependant, ce n'est pas le cas avec toutes les fonctions de hachage.

solution

Vous pouvez utiliser basehash python lib ( PIP Installez basehash ) pour obtenir ce que vous voulez.

Il existe une chose importante à garder à l'esprit cependant: afin de pouvoir ne pas caresser les données, vous devez le hash sans perte de données. Cela signifie généralement que plus le bassin de types de données et de valeurs que vous souhaitez hacher, plus la longueur du hash doit être, de sorte que vous ne recevez pas de collisions de hasch.

Quoi qu'il en soit, voici un simple Exemple de données de hachage / indissous: xxx

Vous pouvez définir la longueur de hachage sur l'initialisation de la fonction de hachage et les autres types de données de hachage.

Je laissez l'explication de la nécessité de diverses bases et des longueurs de hasch aux lecteurs qui souhaitent en savoir plus sur le hachage.


0 commentaires