En los documentos de la API de Flickr , debe encontrar la suma MD5 de una cadena para generar el[api_sig] valor.
¿Cómo se genera una suma MD5 a partir de una cadena?
El ejemplo de Flickr:
cuerda: 000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite
Suma MD5: a02506b31c1cd46c2e0b6380fb94eb3d

hashlib.md5().update('your string').hexdigest(), no funcionará ya queupdate()devuelve Ninguno. Si desea una solución de una línea, use la respuesta de Mark Longair.m.digest_sizeparte de este código, el resumen interno ya tiene 16 bytes.m.hexdigest()[:16]Puedes hacer lo siguiente:
Python 2.x
Python 3.x
Sin embargo, en este caso, probablemente sea mejor usar este útil módulo de Python para interactuar con la API de Flickr:
... que se ocupará de la autenticación por usted.
Documentación oficial de hashlib
fuente
hashlib.md5espera un objeto similar a bytes"") es unicode y debe codificarse en una cadena de bytes. Las cadenas en python2 pueden interpretarse como una cadena btyestring o unicode, y pasar una cadena str ("") se interpreta como una cadena de bytes. Si la cadena tiene caracteres unicode, esto generará una excepción. La codificación de una cadena de bytes dejará los caracteres ascii intactos y se convertirá correctamente en Unicode¿Has intentado usar la implementación MD5 en hashlib ? Tenga en cuenta que los algoritmos de hash generalmente actúan sobre datos binarios en lugar de texto , por lo que es posible que tenga cuidado con la codificación de caracteres que se utiliza para convertir de texto a datos binarios antes del hash.
El resultado de un hash también son datos binarios: parece que el ejemplo de Flickr se ha convertido en texto mediante codificación hexadecimal. Use la
hexdigestfunción en hashlib para obtener esto.fuente
fuente
Puedes usar
bcaracteres delante de un literal de cadena :Fuera:
fuente
Puedes probar con
fuente