In den Flickr-API-Dokumenten müssen Sie die MD5-Summe einer Zeichenfolge finden, um den [api_sig]
Wert zu generieren .
Wie wird eine MD5-Summe aus einer Zeichenfolge generiert?
Flickrs Beispiel:
Zeichenfolge: 000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite
MD5-Summe: a02506b31c1cd46c2e0b6380fb94eb3d
hashlib.md5().update('your string').hexdigest()
, es wird nicht funktionieren, daupdate()
Keine zurückgegeben wird. Wenn Sie eine einzeilige Lösung wünschen, verwenden Sie die Antwort von Mark Longair.m.digest_size
über diesem Code, der interne Digest ist bereits 16 Bytes.m.hexdigest()[:16]
Sie können Folgendes tun:
Python 2.x.
Python 3.x.
In diesem Fall ist es jedoch wahrscheinlich besser, dieses hilfreiche Python-Modul für die Interaktion mit der Flickr-API zu verwenden:
... die sich für Sie um die Authentifizierung kümmern.
Offizielle Dokumentation von hashlib
quelle
hashlib.md5
erwartet ein""
) Unicode und muss in einen Bytestring codiert werden. Strings in python2 können entweder als Btyestring- oder als Unicode-String interpretiert werden, und das Übergeben eines str (""
) - Strings wird als Bytestring interpretiert. Wenn die Zeichenfolge Unicode-Zeichen enthält, wird eine Ausnahme ausgelöst. Das Codieren eines Bytestrings lässt ASCII-Zeichen unberührt und konvertiert Unicode korrektHaben Sie versucht, die MD5-Implementierung in hashlib zu verwenden ? Beachten Sie, dass Hashing-Algorithmen normalerweise eher auf Binärdaten als auf Textdaten wirken. Daher sollten Sie vor dem Hashing vorsichtig sein, welche Zeichencodierung zum Konvertieren von Text in Binärdaten verwendet wird.
Das Ergebnis eines Hashs sind auch Binärdaten - es sieht so aus, als ob das Beispiel von Flickr dann mithilfe von Hex-Codierung in Text konvertiert wurde. Verwenden Sie die
hexdigest
Funktion in hashlib, um dies zu erhalten.quelle
quelle
Sie können
b
Zeichen vor einem Zeichenfolgenliteral verwenden :Aus:
quelle
Sie können mit versuchen
quelle