Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich verschlüsselte Passwörter in PHP sicher abrufen?

Wie kann ich verschlüsselte Passwörter in PHP sicher abrufen?

DDD
DDDOriginal
2024-12-27 12:52:13942Durchsuche

How Can I Securely Retrieve Encrypted Passwords in PHP?

Sicherer Passwortabruf: Jenseits von Verschlüsselung und Hashing

Während die Gewährleistung der Datensicherheit von entscheidender Bedeutung ist, stellt die Speicherung sensibler Informationen wie Passwörter besondere Herausforderungen dar. Sie für einen späteren Abruf zu verschlüsseln, kann kontraintuitiv erscheinen, da der Kern der Verschlüsselung darin besteht, Daten unzugänglich zu machen. Eine gut definierte Verschlüsselungs- und Entschlüsselungsstrategie kann diese Hürde jedoch überwinden.

In PHP können Sie nicht einfach eine Hash-Funktion wie bcrypt für Passwörter verwenden, da es sich um eine einseitige Konvertierung handelt, die das Abrufen unmöglich macht. Um dieses Problem zu lösen, sollten Sie eine Kombination aus Verschlüsselungs- und Verschlüsselungsmethoden in Betracht ziehen, die es Ihnen ermöglicht, das ursprüngliche Passwort abzurufen und gleichzeitig seine Sicherheit zu wahren.

Eine umfassende Verschlüsselungslösung

Für Sicherheit Um Passwörter zu verschlüsseln und zu entschlüsseln, beachten Sie das folgende PHP Code:

$key = 'password to (en/de)crypt';
$string = ' string to be encrypted ';
// Encryption
$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
    )
);
// Decryption
$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
    ),
    ""
);

Wesentliche Überlegungen

Es ist wichtig zu beachten, dass der bereitgestellte Code Informationen verschlüsselt, den Chiffretext jedoch nicht authentifiziert, um Manipulationen zu verhindern . Für mehr Sicherheit wird empfohlen, sich nicht ausschließlich auf nicht authentifizierte Verschlüsselung zu verlassen.

Zusätzliche Ressourcen

Weitere Informationen finden Sie in den folgenden Ressourcen Einblicke:

  • https://stackoverflow.com/a/30189841/2224584
  • https://stackoverflow.c om/a/30166085/2224584
  • https://stackoverflow.com/a/30159120/2224584

Vorsicht: Sicherheit des Verschlüsselungsschlüssels

Verwenden Sie niemals ein „Passwort“ als Verschlüsselungsschlüssel; Verschlüsselungsschlüssel sollten zufällige Zeichenfolgen sein.

Das obige ist der detaillierte Inhalt vonWie kann ich verschlüsselte Passwörter in PHP sicher abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn