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_size
parte 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.md5
espera 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
hexdigest
función en hashlib para obtener esto.fuente
fuente
Puedes usar
b
caracteres delante de un literal de cadena :Fuera:
fuente
Puedes probar con
fuente