Eigentlich gibt es zwei Fragen hier:
1) Ist es in Ordnung, die Hashes in einer Datei zu speichern
Passwörter Speichern in einer Datei ist nicht bett oder schlimmer als das Speichern in einer Datenbank. Der Punkt bei einer Datei ist, dass sie außerhalb des WWW-Stammverzeichnisses gespeichert werden sollte. Die meisten Provider bieten ein privates Verzeichnis, auf das per Code zugegriffen werden kann, das aber für HTTP-Anfragen nicht erreichbar ist.
2) Ist es sicher
Kein SHA- * und MD5-Passwörter für Hashing Passwörter SHA-256 zu verwenden, nicht direkt verwendet, um Hash werden soll, weil sie zu schnell sind und daher sein kann Brute-Zwang zu leicht. Stattdessen sollte man eine langsame Funktion wie BCrypt, PBKDF2 oder SCrypt verwenden, sie bieten einen Kostenfaktor und fügen automatisch ein sicheres Salz hinzu.
PHP bietet mit zwei Funktionen password_hash() und password_verify(). Benutze sie, sie sind zukunftssicher und produzieren BCrypt-Hashes.
// Hash a new password for storing in the database.
// The function automatically generates a cryptographically safe salt.
$hashToStoreInDb = password_hash($password, PASSWORD_DEFAULT);
// Check if the hash of the entered login password, matches the stored hash.
// The salt and the cost factor will be extracted from $existingHashFromDb.
$isPasswordCorrect = password_verify($password, $existingHashFromDb);
Wenn Sie eine alte Version von PHP ausführen, die diese API nicht enthält, aktualisieren Sie. Wenn Sie aus irgendeinem Grund nicht können, überprüfen Sie password_compat.
Können Sie uns Ihren Code zeigen? – Genzotto
[Verwenden Sie SHA256 nicht für Passwörter] (https://paragonie.com/blog/2016/02/how-safely-store-password-in-2016). –