Nos documentos da API do Flickr , você precisa encontrar a soma MD5 de uma sequência para gerar o [api_sig]
valor.
Como se gera uma soma MD5 a partir de uma string?
Exemplo do Flickr:
corda: 000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite
Soma MD5: a02506b31c1cd46c2e0b6380fb94eb3d
hashlib.md5().update('your string').hexdigest()
, ele não funcionará, poisupdate()
retorna Nenhum. Se você deseja uma solução de uma linha, use a resposta de Mark Longair.m.digest_size
sobre esse código, o resumo interno já tem 16 bytes.m.hexdigest()[:16]
Você pode fazer o seguinte:
Python 2.x
Python 3.x
No entanto, nesse caso, você provavelmente está melhor usando este útil módulo Python para interagir com a API do Flickr:
... que tratará da autenticação para você.
Documentação oficial de hashlib
fonte
hashlib.md5
espera um objeto parecido com bytes""
) é unicode e deve ser codificado em uma bytestring. As strings no python2 podem ser interpretadas como uma string btyestring ou unicode, e a passagem de uma""
string str ( ) é interpretada como uma bytestring. Se a sequência tiver caracteres unicode, isso gerará uma exceção. Codifica uma bytestring vai deixar caracteres ASCII intocado e unicode convertido corretamenteVocê já tentou usar a implementação MD5 no hashlib ? Observe que os algoritmos de hash geralmente agem nos dados binários, e não nos dados de texto ; portanto, você deve ter cuidado com a codificação de caracteres usada para converter de texto em dados binários antes do hash.
O resultado de um hash também são dados binários - parece que o exemplo do Flickr foi convertido em texto usando codificação hexadecimal. Use a
hexdigest
função no hashlib para obter isso.fonte
fonte
Você pode usar o
b
caractere na frente de uma string literal :Fora:
fonte
Você pode tentar com
fonte