So verschlüsseln und entschlüsseln Sie Passwörter sicher in PHP
Das Speichern vertraulicher Benutzerinformationen, wie z. B. ausländische Kontoanmeldeinformationen, erfordert besondere Vorsichtsmaßnahmen, um die Daten zu schützen Sicherheit. Während die Verschlüsselung eine Schutzschicht bietet, ist es wichtig, robuste Methoden einzusetzen, die den unbefugten Zugriff auf Klartextdaten verhindern.
Hashing vs. Verschlüsselung
Hashing ist der bevorzugte Ansatz für Passwortspeicherung. Im Gegensatz zur Verschlüsselung wandelt Hashing Passwörter irreversibel in ein einzigartiges und nicht umkehrbares Format um, sodass es praktisch unmöglich ist, das ursprüngliche Passwort wiederherzustellen. Dadurch wird sichergestellt, dass Angreifer, selbst wenn sie Zugriff auf die gehashten Passwörter erhalten, die Benutzerkonten nicht kompromittieren können.
Verschlüsselungs- und Entschlüsselungsfunktionen
Für Situationen, in denen eine Verschlüsselung erforderlich ist, PHP bietet mehrere Funktionen zum Verschlüsseln und Entschlüsseln von Text. Eine gängige Methode ist die Rijndael-Verschlüsselung, auch bekannt als AES-128:
$key = 'password to (en/de)crypt'; $string = ' string to be encrypted '; // note the spaces
Zu verschlüsseln:
$iv = mcrypt_create_iv( mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_DEV_URANDOM ); $encrypted = base64_encode( $iv . mcrypt_encrypt( MCRYPT_RIJNDAEL_128, hash('sha256', $key, true), $string, MCRYPT_MODE_CBC, $iv ) );
Zu Entschlüsseln:
$data = base64_decode($encrypted); $iv = substr($data, 0, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC)); $decrypted = rtrim( mcrypt_decrypt( MCRYPT_RIJNDAEL_128, hash('sha256', $key, true), substr($data, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC)), MCRYPT_MODE_CBC, $iv ), "" );
Warnung
Verschlüsselte Daten sind anfällig für Padding-Oracle-Angriffe, wenn sie nicht authentifiziert werden. Authentifizierte Verschlüsselungsmechanismen sollten immer in Verbindung mit Verschlüsselung verwendet werden.
Best Practices
Um ein Höchstmaß an Sicherheit zu gewährleisten, befolgen Sie diese Best Practices:
Das obige ist der detaillierte Inhalt vonWie verschlüssele und entschlüssele ich Daten sicher mit PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!