392 Stimmen

Wie erhält man die MD5-Summe einer Zeichenkette mit Python?

In der Flickr-API-Dokumente müssen Sie die MD5-Summe einer Zeichenkette ermitteln, um die [api_sig] Wert.

Wie kann man eine MD5-Summe aus einer Zeichenkette erzeugen?

Flickr ist ein Beispiel:

String: 000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite

MD5-Summe: a02506b31c1cd46c2e0b6380fb94eb3d

789voto

Mark Longair Punkte 412179

Sie können Folgendes tun:

Python 2.x

import hashlib
print hashlib.md5("whatever your string is").hexdigest()

Python 3.x

import hashlib
print(hashlib.md5("whatever your string is".encode('utf-8')).hexdigest())

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 wird.

Offizielle Dokumentation von hashlib

294voto

Ikke Punkte 95045

Für Python 2.x verwenden Sie Python's hashlib

import hashlib
m = hashlib.md5()
m.update("000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite")
print m.hexdigest()

Ausgabe: a02506b31c1cd46c2e0b6380fb94eb3d

21voto

prosti Punkte 34344

Sie können verwenden b Zeichen vor einem Zeichenfolgenliteral :

import hashlib
print(hashlib.md5(b"Hello MD5").hexdigest())
print(hashlib.md5("Hello MD5".encode('utf-8')).hexdigest())

Aus:

e5dadf6524624f79c3127e247f04b548
e5dadf6524624f79c3127e247f04b548

13voto

Jon Skeet Punkte 1325502

Haben Sie versucht, die MD5-Implementierung in hashlib ? Beachten Sie, dass Hashing-Algorithmen typischerweise auf binär Daten und nicht Text Daten, daher sollten Sie darauf achten, welche Zeichenkodierung für die Umwandlung von Text in Binärdaten vor dem Hashing verwendet wird.

En Ergebnis eines Hashes sind ebenfalls binäre Daten - es sieht so aus, als ob das Beispiel von Flickr anschließend mit Hilfe der Hex-Kodierung in Text umgewandelt wurde. Verwenden Sie die hexdigest Funktion in hashlib, um dies zu erhalten.

12voto

z0gSh1u Punkte 147

Verwenden Sie hashlib.md5 in Python 3.

import hashlib

source = '000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite'.encode()
md5 = hashlib.md5(source).hexdigest() # returns a str
print(md5) # a02506b31c1cd46c2e0b6380fb94eb3d

Wenn Sie eine byteartige Ausgabe benötigen, verwenden Sie digest() anstelle von hexdigest() .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X