PHP-Funktion password_hash für Python: Lösung PASSWORD_ARGON2ID - Nachtrag: Stärke des Hashes
bearbeitet von Raketenwilli> Mit der Methode ARGON2ID kann ich Passwörter in Python erzeugen und in PHP verifizieren oder in Python3 erzeugen und in PHP verifizieren.
>
> Statt Anleitung: Mein Test
>
Hm. Beim Python-Teil hab ich **von mir selbst falsch abgeschrieben**... Es fehlen Klammern hinter PasswordHasher.
**Dazu kommt dann noch:** Die PHP-Funktion
~~~php
password_verify($hash, PASSWORD_ARGON2ID )
~~~
liefert für die so erzeugten Hashes ein `true`, was andeutet das diese **zu schwach** sind.
**Mist!**
[Aber in den Tiefen des Handbuchs der wohl von Support lebenden Hersteller von argon2-cffi (**Version jetzt 21.3.0**)](https://argon2-cffi.readthedocs.io/en/stable/api.html#argon2.PasswordHasher.hash) fand ich dann den Hinweis, dass ich deren `argon2.PasswordHasher()` anders initialisieren kann…
Mit
Python:
~~~Python
# pip install argon2-cffi nicht vergessen!
import argon2
time_cost = 4 #Default wäre 3, mehr ist stärker
memory_cost = 65536 #mehr wäre stärker
parallelism = 1 #Default wäre 4, weniger ist stärker
#(Hacker beachten das aber nicht, wenn diese mit
# eigenen Programmen erbeutete Hash knacken wollen)
hash_len = 32 #mehr wäre stärker-> längerer Hash
salt_len = 22 #Default wäre 16, andere sehen 22 als besser an
encoding = 'utf-8'
passwordHasher = argon2.PasswordHasher(
time_cost,
memory_cost,
parallelism,
hash_len,
salt_len,
encoding
)
passwordHasher.hash("correct horse battery staple")
~~~
wird dann ein hash generiert, den dann in PHP die Funktion `password_verify($hash, PASSWORD_ARGON2ID )` akzeptiert, also `false` liefert.