Heim >Backend-Entwicklung >PHP-Tutorial >Ver- und Entschlüsselung in PHP: md5, SHA1, AES und andere Algorithmen

Ver- und Entschlüsselung in PHP: md5, SHA1, AES und andere Algorithmen

PHPz
PHPzOriginal
2023-05-11 17:00:093103Durchsuche

PHP spielt als weit verbreitete Programmiersprache eine wichtige Rolle in der Webentwicklung. Bei der Webentwicklung ist Sicherheit ein entscheidendes Thema und umfasst die Übertragung und Speicherung vertraulicher Informationen wie Benutzerkennwörter und Benutzereingaben. Um die Sicherheit der Benutzerinformationen zu gewährleisten, verwenden Entwickler normalerweise verschiedene Verschlüsselungsalgorithmen, um diese vertraulichen Informationen zu verschlüsseln. Zu den in PHP häufig verwendeten Verschlüsselungsalgorithmen gehören MD5, SHA1, AES usw. In diesem Artikel werden die Eigenschaften, Verwendungs- und Anwendungsszenarien dieser Verschlüsselungsalgorithmen ausführlich vorgestellt.

1. MD5-Verschlüsselungsalgorithmus

MD5, der vollständige Name ist Message-Digest-Algorithmus 5, ist eine häufig verwendete Hash-Funktion, die zum Komprimieren von Informationen beliebiger Länge in 128 Bits verwendet wird Daten. In PHP können das Passwort des Benutzers und andere vertrauliche Informationen mit dem MD5-Verschlüsselungsalgorithmus verschlüsselt werden, wodurch die Sicherheit erhöht wird. Die Verwendung des MD5-Verschlüsselungsalgorithmus ist sehr einfach. Sie können den folgenden Code zur Verschlüsselung verwenden:

$source_str = 'Hello World!';
$md5_str = md5($source_str);
echo $md5_str;

Im obigen Code definieren wir zunächst eine Zeichenfolgenvariable „Hello World!“. verschlüsselt werden. Verwenden Sie dann die Funktion md5, um die Zeichenfolge zu verschlüsseln und das Ergebnis der Variablen $md5_str zuzuweisen. Abschließend verwenden wir die Echo-Anweisung, um die Verschlüsselungsergebnisse auf dem Bildschirm auszugeben. Nach der Ausführung dieses Codes lautet das Ausgabeergebnis:

b94d27b9934d3e08a52e52d7da7dabfa

Aus dem Ausgabeergebnis ist ersichtlich, dass die ursprünglichen Informationen nach der MD5-Verschlüsselung in eine Reihe scheinbar unorganisierter Zeichen umgewandelt wurden. Dies bedeutet, dass es durch eine umgekehrte Entschlüsselung der verschlüsselten Informationen nahezu unmöglich ist, die ursprünglichen Informationen wiederherzustellen. Daher wird der MD5-Algorithmus in praktischen Anwendungen häufig zur Verschlüsselung vertraulicher Informationen wie Benutzerkennwörter verwendet.

2. SHA1-Verschlüsselungsalgorithmus

SHA1, der vollständige Name ist Secure Hash Algorithm 1, ist eine Hash-Funktion, ähnlich dem MD5-Algorithmus, und kann auch beliebige Informationen komprimieren Länge in 160-Bit-Daten. Der Unterschied besteht darin, dass die Ausgabe des SHA1-Algorithmus länger ist als die des MD5-Algorithmus und daher eine höhere Sicherheit bietet. In PHP ist die Verwendung des SHA1-Verschlüsselungsalgorithmus ebenfalls sehr einfach. Sie können den folgenden Code für die Verschlüsselung verwenden:

$source_str = 'Hello World!';
$sha1_str = sha1($source_str);
echo $sha1_str;

Im obigen Code definieren wir auch eine Zeichenfolgenvariable „Hello World!“ Originalinformationen verschlüsselt werden. Verwenden Sie dann die Funktion sha1, um die Zeichenfolge zu verschlüsseln und das Ergebnis der Variablen $sha1_str zuzuweisen. Abschließend verwenden wir die Echo-Anweisung, um die Verschlüsselungsergebnisse auf dem Bildschirm auszugeben. Nach der Ausführung dieses Codes lautet das Ausgabeergebnis:

2ef7bde608ce5404e97d5f042f95f89f1c232871

Wie Sie dem Ausgabeergebnis entnehmen können, werden die ursprünglichen Informationen nach der SHA1-Verschlüsselung ebenfalls in eine Reihe scheinbar unorganisierter Zeichen umgewandelt. Im Vergleich zum MD5-Algorithmus ist das Ausgabeergebnis des SHA1-Algorithmus länger und schwieriger rückwärts zu entschlüsseln. Daher wird der SHA1-Algorithmus häufig zur Verschlüsselung sensiblerer Informationen verwendet.

3. AES-Verschlüsselungsalgorithmus

AES, der vollständige Name lautet Advanced Encryption Standard, ist ein fortschrittlicher Verschlüsselungsstandard und ein symmetrischer Verschlüsselungsalgorithmus, der häufig zur Verschlüsselung der Netzwerkdatenübertragung verwendet wird. Sensible Informationen wie Datenspeicherung, E-Mails und Dateien. In PHP erfordert die Verwendung des AES-Verschlüsselungsalgorithmus die Hilfe der mcrypt-Erweiterungsbibliothek. Die spezifische Verwendung ist wie folgt:

$key = '1234567890123456'; // 密钥长度必须是16、24或32个字符
$plaintext = 'Hello World!'; // 要加密的明文
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_RAND); // 随机生成iv
$ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $plaintext, MCRYPT_MODE_CBC, $iv); // 加密处理
echo $ciphertext;

Im obigen Code definieren wir zunächst einen Schlüssel $key und weisen der Variablen $plaintext die zu verschlüsselnde Klartextzeichenfolge „Hello World!“ zu. Verwenden Sie dann die Funktion mcrypt_create_iv, um eine zufällige iv zu generieren. Beachten Sie, dass die Länge von iv mit dem 128-Bit-Algorithmus von Rijndael übereinstimmen muss. Daher verwenden wir hier die Funktion mcrypt_get_iv_size, um die Standardlänge von iv zu erhalten. Als nächstes verwenden Sie die Funktion mcrypt_encrypt, um die Klartextzeichenfolge zu verschlüsseln, und weisen das Verschlüsselungsergebnis der Variablen $ciphertext zu. Abschließend verwenden wir die Echo-Anweisung, um die Verschlüsselungsergebnisse auf dem Bildschirm auszugeben. Nach der Ausführung dieses Codes lautet das Ausgabeergebnis:

E¦H­°hÎ!!DS5%:W=š•¥ 

Aus dem Ausgabeergebnis ist ersichtlich, dass die Originalinformationen nach der AES-Verschlüsselung in eine Reihe scheinbar unorganisierter Zeichen umgewandelt wurden. Im Vergleich zu MD5- und SHA1-Algorithmen verwendet der AES-Algorithmus komplexere Verschlüsselungsprinzipien und ist daher sicherer und zuverlässiger. In praktischen Anwendungen wird der AES-Algorithmus häufig zur Verschlüsselung sensiblerer Informationen verwendet.

Zusammenfassend lässt sich sagen, dass die Verschlüsselungsalgorithmen MD5, SHA1 und AES alle unterschiedliche Eigenschaften und Anwendungsszenarien haben. Bei der Webentwicklung kann der Einsatz von Verschlüsselungsalgorithmen die Sicherheit von Benutzerinformationen effektiv verbessern und so die Privatsphäre und Sicherheit der Benutzer gewährleisten. Entwickler können je nach tatsächlichem Bedarf geeignete Verschlüsselungsalgorithmen auswählen, um vertrauliche Informationen zu verschlüsseln.

Das obige ist der detaillierte Inhalt vonVer- und Entschlüsselung in PHP: md5, SHA1, AES und andere Algorithmen. 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