В документах Flickr API вам нужно найти сумму строки MD5 для генерации [api_sig]
значения.
Как можно получить сумму MD5 из строки?
Пример Flickr:
строка: 000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite
Сумма MD5: a02506b31c1cd46c2e0b6380fb94eb3d
hashlib.md5().update('your string').hexdigest()
, это не будет работать, так какupdate()
возвращает None. Если вы хотите однострочное решение, воспользуйтесь ответом Марка Лонгэйра.m.digest_size
над этим кодом, внутренний дайджест уже 16 байтов.m.hexdigest()[:16]
Вы можете сделать следующее:
Python 2.x
Python 3.x
Однако в этом случае вам, вероятно, лучше использовать этот полезный модуль Python для взаимодействия с Flickr API:
... который будет иметь дело с аутентификацией для вас.
Официальная документация hashlib
источник
hashlib.md5
ожидает подобный""
) является юникодом и должен быть закодирован в строку байтов. Строки в python2 могут интерпретироваться как строка btyestring или unicode, а передача""
строки str ( ) интерпретируется как строка байтов. Если строка содержит символы Юникода, это вызовет исключение. Кодирование строки байта оставит символы ascii нетронутыми и правильно конвертирует юникодВы пытались использовать реализацию MD5 в hashlib ? Обратите внимание, что алгоритмы хеширования обычно действуют на двоичные данные, а не на текстовые данные, поэтому вы можете быть осторожны с тем, какая кодировка символов используется для преобразования текста в двоичные данные перед хешированием.
Результат хеша также двоичные данные - это выглядит как пример Flickr в затем был преобразован в текст , используя шестигранную кодировку. Используйте
hexdigest
функцию в hashlib, чтобы получить это.источник
источник
Вы можете использовать
b
символ перед строковым литералом :Вне:
источник
Вы можете попробовать с
источник