W dokumentach API Flickr musisz znaleźć sumę MD5 ciągu, aby wygenerować [api_sig]
wartość.
Jak sobie radzić z generowaniem sumy MD5 z ciągu?
Przykład Flickr:
strunowy: 000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite
Suma MD5: a02506b31c1cd46c2e0b6380fb94eb3d
hashlib.md5().update('your string').hexdigest()
, nie będzie działać, ponieważupdate()
zwraca Brak. Jeśli chcesz rozwiązania jednoliniowego, użyj odpowiedzi Marka Longaira.m.digest_size
na wierzchu tego kodu, wewnętrzne podsumowanie ma już 16 bajtów.m.hexdigest()[:16]
Możesz wykonać następujące czynności:
Python 2.x
Python 3.x
Jednak w tym przypadku prawdopodobnie lepiej jest użyć tego pomocnego modułu Python do interakcji z interfejsem API Flickr:
... które zajmą się uwierzytelnianiem za Ciebie.
Oficjalna dokumentacja hashlib
źródło
hashlib.md5
oczekuje obiektu podobnego do bajtów""
) jest Unicode i musi być zakodowany do bajtowania. Ciągi w python2 można interpretować jako ciąg bajtowy lub ciąg Unicode, a przekazanie ciągu str (""
) jest interpretowane jako bajtowanie. Jeśli ciąg ma znaki Unicode, spowoduje to wyjątek. Kodowanie bajtowania pozostawia nietknięte znaki ascii i poprawnie konwertuje UnicodePróbowałeś użyć implementacji MD5 w hashlib ? Zauważ, że algorytmy mieszające zwykle działają na danych binarnych, a nie na danych tekstowych , więc możesz być ostrożny przy wybieraniu kodowania znaków przed konwersją z tekstu na dane binarne.
Wynik od mieszania jest również dane binarne - wygląda na przykład Flickr została następnie przekształcona tekstu przy użyciu kodowania hex.
hexdigest
Aby to zrobić, użyj funkcji w hashlib.źródło
źródło
Możesz użyć
b
znaku przed literałem ciągu :Na zewnątrz:
źródło
Możesz spróbować z
źródło