Bonjour communauté StackOverflow de hashlib.digest(),Python problème avec la méthode de décodage
Utilisation de Google App Engine, j'ai écrit une méthode keyToSha256() dans une classe de modèle (extension db.Model):
class Car(db.Model):
def keyToSha256(self):
keyhash = hashlib.sha256(str(self.key())).digest()
return keyhash
Lors de l'affichage de la sortie (en fin de compte dans un modèle Django), je reçois le texte brouillées, par exemple:
_ɘ `I; QeqNAl'2!
Je me attendais quelque chose de plus conforme à celle-ci:
9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
Est-ce que je manque quelque chose d'important? Malgré la lecture de plusieurs guides sur ASCII, Unicode, utf-8 et autres, je pense que je suis encore loin de maîtriser les secrets de l'encodage/décodage des chaînes. Après avoir parcouru StackOverflow et recherché des idées via Google, j'ai compris que je devrais poser la question ici. Une idée ? Merci !
Merveilleux, merci Ignacio! Je viens de lire http://docs.python.org/library/hashlib.html#hashlib.hash.hexdigest: Je ne comprends pas pourquoi .digest() ne fera pas l'affaire, cependant. Les cordes sont si mystérieuses pour moi. – jbmusso
'.digest()' vous donne une chaîne, mais ce sont les octets bruts. –
Super, je comprends parfaitement! Python doc était trompeur pour un programmeur inexpérimenté comme moi, mais le lire une fois de plus avec votre réponse à l'esprit, il est beaucoup plus facile à comprendre. J'ai maintenant la signification de "environnements non-binaires", dont je suis sûr que cela sera utile à l'avenir. – jbmusso