Dans les documents de l'API Flickr , vous devez trouver la somme MD5 d'une chaîne pour générer la [api_sig]
valeur.
Comment générer une somme MD5 à partir d'une chaîne?
Exemple de Flickr:
chaîne: 000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite
Somme MD5: a02506b31c1cd46c2e0b6380fb94eb3d
hashlib.md5().update('your string').hexdigest()
, cela ne fonctionnera pas carupdate()
retourne Aucun. Si vous voulez une solution à une ligne, utilisez la réponse de Mark Longair.m.digest_size
au-dessus de ce code, le résumé interne est déjà 16 octets.m.hexdigest()[:16]
Vous pouvez effectuer les opérations suivantes:
Python 2.x
Python 3.x
Cependant, dans ce cas, vous feriez probablement mieux d'utiliser ce module Python utile pour interagir avec l'API Flickr:
... qui s'occupera de l'authentification pour vous.
Documentation officielle de hashlib
la source
hashlib.md5
attend un objet de type""
) est unicode et doit être codé en bytestring. Les chaînes en python2 peuvent être interprétées comme une chaîne btyestring ou unicode, et passer une""
chaîne str ( ) est interprété comme une chaîne bytestring. Si la chaîne a des caractères unicode, cela déclenchera une exception. Encoder un bytestring laissera les caractères ascii intacts et convertira correctement l'unicodeAvez-vous essayé d'utiliser l'implémentation MD5 dans hashlib ? Notez que les algorithmes de hachage agissent généralement sur les données binaires plutôt que sur les données texte , vous pouvez donc faire attention au codage de caractères utilisé pour convertir du texte en données binaires avant le hachage.
Le résultat d'un hachage est également des données binaires - il semble que l'exemple de Flickr a ensuite été converti en texte à l'aide d'un codage hexadécimal. Utilisez la
hexdigest
fonction dans hashlib pour l'obtenir.la source
la source
Vous pouvez utiliser un
b
caractère devant un littéral de chaîne :En dehors:
la source
Vous pouvez essayer avec
la source