Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verschlüssele und entschlüssele ich Daten mit PHP?

Wie verschlüssele und entschlüssele ich Daten mit PHP?

WBOY
WBOYOriginal
2023-05-21 09:33:142480Durchsuche

Mit der rasanten Entwicklung der Netzwerktechnologie ist die Datensicherheit zu einem der wichtigsten Themen bei der Entwicklung von Netzwerkanwendungen geworden. Datenverschlüsselung ist eine Möglichkeit, vertrauliche Informationen zu schützen, indem Daten mithilfe eines Verschlüsselungsalgorithmus in eine scheinbar bedeutungslose Zeichenfolge umgewandelt werden, sodass Unbefugte die Informationen nicht lesen können. PHP ist eine weit verbreitete serverseitige Skriptsprache, die umfangreiche Verschlüsselungs- und Entschlüsselungsfunktionen zur Implementierung verschiedener Verschlüsselungsalgorithmen bietet.

In diesem Artikel wird erläutert, wie Sie PHP zur Datenverschlüsselung und -entschlüsselung verwenden, und es werden einige nützliche Tipps und Best Practices für die PHP-Verschlüsselung bereitgestellt.

1. Grundlegende Verschlüsselungs- und Entschlüsselungsfunktionen

PHP bietet eine Vielzahl von Verschlüsselungs- und Entschlüsselungsfunktionen, einschließlich symmetrischer Verschlüsselung, asymmetrischer Verschlüsselung und Hash-Verschlüsselung. Im Folgenden sind einige grundlegende Verschlüsselungs- und Entschlüsselungsfunktionen aufgeführt:

  1. md5

md5 ist die in PHP integrierte Funktion zum Generieren von 128-Bit-Hashwerten, die den Vorteil hat, dass sie nicht rückwärts geknackt werden kann. Seine Verwendung ist wie folgt:

$data = 'hello world';
$hash = md5($data);

Der obige Code hasht die $data und gibt einen 128-Bit-Hash-Wert zurück.

  1. sha1

sha1 ist die in PHP integrierte Funktion, die 160-Bit-Hashwerte generiert und eine höhere Sicherheit als MD5 bietet. Seine Verwendung stimmt mit MD5 wie folgt überein:

$data = 'hello world';
$hash = sha1($data);
  1. mcrypt_encrypt und mcrypt_decrypt

mcrypt_encrypt und mcrypt_decrypt sind die integrierten symmetrischen Verschlüsselungsfunktionen von PHP, die eine Vielzahl von Verschlüsselungsalgorithmen wie des, aes, rc4 usw. implementieren können . Ein Beispiel für die Verwendung von mcrypt_encrypt zum Verschlüsseln von Daten ist wie folgt:

$data = 'hello world';
$key = 'my_key';
$iv = '12345678';
$encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv);

Der obige Code verschlüsselt $data mit dem Rijndael-128-Algorithmus und verwendet den cbc-Modus und den $iv-Offset. Die mcrypt_decrypt-Funktion entspricht der mcrypt_encrypt-Funktion und wird zum Entschlüsseln von Daten verwendet:

$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $encrypted, MCRYPT_MODE_CBC, $iv);
  1. openssl_public_encrypt und openssl_private_decrypt

openssl_public_encrypt und openssl_private_decrypt sind die in PHP integrierten asymmetrischen Verschlüsselungsfunktionen, die den öffentlichen Schlüssel zum Verschlüsseln von Daten und den privaten Schlüssel zum Entschlüsseln verwenden Daten. Der Beispielcode zum Verschlüsseln von Daten lautet beispielsweise wie folgt:

$data = 'hello world';
$public_key = file_get_contents('public.pem');
$res = openssl_get_publickey($public_key);
openssl_public_encrypt($data, $encrypted, $res);

Der obige Code verwendet den öffentlichen Schlüssel zum Verschlüsseln der $data-Daten und speichert das Verschlüsselungsergebnis in der Variablen $encrypted. Ein Beispielcode zum Entschlüsseln von Daten mithilfe eines privaten Schlüssels lautet wie folgt:

$private_key = file_get_contents('private.pem');
$res = openssl_get_privatekey($private_key);
openssl_private_decrypt($encrypted, $decrypted, $res);

Der obige Code verwendet den privaten Schlüssel, um die in der Variablen $encrypted gespeicherten Daten zu entschlüsseln, und speichert das entschlüsselte Ergebnis in der Variablen $decrypted. 2. Verschlüsselungstechniken und Best Practices schwieriger ist es, das Passwort zu knacken. Daher können Sie bei der Implementierung der Passwortverschlüsselung die folgenden Strategien verwenden, um die Passwortkomplexität zu verbessern:

Passwortlänge: Verwenden Sie möglichst ein langes Passwort. Normalerweise wird die Verwendung von mindestens 12 Zeichen empfohlen.

Groß- und Kleinschreibung Zahlen: Verwenden Sie Groß- und Kleinbuchstaben und Zahlen. Eine Zahlenkombination erhöht die Schwierigkeit beim Knacken des Passworts.
  1. Sonderzeichen: Das Hinzufügen einiger Sonderzeichen wie @, #, $, ^ usw. kann ebenfalls erhöht werden die Komplexität des Passworts.

Verwenden Sie die Salting-Strategie
  • Salting bedeutet, beim Verschlüsseln des Passworts eine zufällig generierte Zeichenfolge zum Passwort zur Verschlüsselung hinzuzufügen. Dadurch kann der Einsatz von Angriffen wie Rainbow Tables vermieden werden, die das Knacken von Passwörtern erschweren können. Hier sind einige Beispiele für Salting-Funktionen:
  • function generate_salt($length) {
      $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
      $salt = '';
      for ($i = 0; $i < $length; $i++) {
        $salt .= $chars[rand(0, strlen($chars) - 1)];
      }
      return $salt;
    }
    
    function hash_password($password, $salt) {
      return hash('sha256', $password . $salt);
    }
  • Verwenden Sie verschiedene Verschlüsselungsalgorithmen
    Da die Verwendung desselben Verschlüsselungsalgorithmus für die Verschlüsselung die Daten anfälliger macht, wird empfohlen, mehrere verschiedene Verschlüsselungsalgorithmen zu verwenden, um die Datensicherheit zu verbessern.
Ändern Sie den Verschlüsselungsschlüssel und den Salt-Wert regelmäßig.

    Um die Schwierigkeit von Cracking-Angriffen zu erhöhen, wird empfohlen, den Verschlüsselungsschlüssel und den Salt-String regelmäßig zu ändern. Insbesondere im Falle eines Datenlecks oder Angriffs sollten Verschlüsselungsschlüssel und Salt-Werte sofort geändert werden.
  1. 5. Fazit

PHP bietet eine Fülle von Verschlüsselungs- und Entschlüsselungsfunktionen, die verschiedene Verschlüsselungsalgorithmen zum Schutz sensibler Daten verwenden können. In der tatsächlichen Anwendungsentwicklung können auch Techniken wie das Hinzufügen von Salt und die Erhöhung der Passwortkomplexität zur Verbesserung der Datensicherheit eingesetzt werden. Kenntnisse in PHP-Verschlüsselungs- und -Entschlüsselungsfunktionen und die ordnungsgemäße Anwendung von Verschlüsselungstechniken können die entwickelten Anwendungen sicherer und zuverlässiger machen.

Das obige ist der detaillierte Inhalt vonWie verschlüssele und entschlüssele ich Daten mit PHP?. 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