"ein optionales zweites Argument, das, falls wahr, einen kleineren Hash der Länge 16 anstelle des normalen 32 Zeichen langen Hashes zurückgibt."
Dies ist nicht wahr ist: Der zweite Parameter $raw_output
gibt an, ob der Ausgang hexadecimal (hex) codiert oder in einem rohen binary Zeichenfolge sein sollte. Die Hash-Länge ändert sich nicht, sondern die Länge der codierten Zeichenfolge.
import hashlib
digest = hashlib.md5("asdf").digest() # 16 byte binary
hexdigest = hashlib.md5("asdf").hexdigest() # 32 character hexadecimal
Die erste sollte nur in Ihrem Code verwendet werden und nicht dem Benutzer präsentiert, da es nicht druckbare Zeichen enthalten. Deshalb sollten Sie immer die Funktion hexdigest
verwenden, wenn Sie den Hash einem Benutzer präsentieren möchten.