Heim Backend-Entwicklung PHP-Tutorial Wie verschlüssele und entschlüssele ich Daten in PHP?

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

May 12, 2023 am 08:07 AM
php加密算法 php数据加密函数 php数据解密函数

PHP ist eine serverseitige Open-Source-Programmiersprache, die im Bereich der Webentwicklung weit verbreitet ist. Da es bei Webanwendungen häufig um vertrauliche Benutzerinformationen wie Passwörter, Bankkartennummern usw. geht, ist es besonders wichtig, diese Informationen zu ver- und entschlüsseln.

In diesem Artikel wird das Ver- und Entschlüsseln von Daten in PHP vorgestellt, hauptsächlich mit folgendem Inhalt:

  1. Häufig verwendete Verschlüsselungsalgorithmen und ihre Eigenschaften
  2. # 🎜🎜#MD5-Verschlüsselung in PHP verwenden
  3. Sha1-Verschlüsselung in PHP verwenden
  4. Base64-Verschlüsselung in PHP verwenden
  5. OpenSSL in der PHP-Erweiterungsbibliothek verwenden für AES-Verschlüsselung und -Entschlüsselung
  6. Schritte zur Verwendung der mcrypt-Erweiterungsbibliothek für die AES-Verschlüsselung und -Entschlüsselung in PHP
1. Häufig verwendete Verschlüsselungsalgorithmen und ihre Eigenschaften #🎜🎜 #

MD5-Algorithmus: Ein häufig verwendeter Nachrichten-Digest-Algorithmus, der eine Zeichenfolge beliebiger Länge in einen 128-Bit-Ausgabewert umwandelt. Er wird häufig in Bereichen wie Datenverschlüsselung und elektronischen Signaturen verwendet.
  1. Eigenschaften: Der MD5-Algorithmus ist irreversibel, das heißt, der Eingabewert kann nicht durch den Ausgabewert umgekehrt werden; der MD5-Algorithmus stellt sicher, dass der Ausgabewert derselben Eingabe auch gleich ist ; Der MD5-Algorithmus kann durch Kollisionsangriffe leicht geknackt werden.

SHA1-Algorithmus: Ein sicherer Hash-Algorithmus, ähnlich wie MD5, der eine Zeichenfolge beliebiger Länge in einen 160-Bit-Ausgabewert abbildet, mit besserer Sicherheit und Antikollisionsfähigkeit.
  1. Merkmale: Der SHA1-Algorithmus ist irreversibel; die Ausgabewertlänge des SHA1-Algorithmus ist länger als die des MD5-Algorithmus, wodurch eine bessere Sicherheit gewährleistet wird; der SHA1-Algorithmus kann Kollisionsangriffe nicht vollständig verhindern.

base64-Kodierung: Eine Kodierungsmethode, die Binärdaten in gut lesbare ASCII-Zeichen kodiert. Sie wird häufig in E-Mails, HTTP-Protokollen und anderen Bereichen verwendet.
  1. Eigenschaften: Die Base64-Kodierung ist kein echter Verschlüsselungsalgorithmus, sondern nur eine Kodierungsmethode. Die Base64-Kodierung ändert nicht den Inhalt der Daten, sondern nur die Darstellung der Daten kann die Stabilität und Sicherheit der Datenübertragung erhöhen.

AES-Algorithmus: Advanced Encryption Standard ist ein symmetrischer Verschlüsselungsalgorithmus, der zum Schutz der Sicherheit von Daten wie sensiblen Informationen verwendet wird. Der AES-Algorithmus ist in drei Schlüssellängen unterteilt: 128 Bit, 192 Bit und 256 Bit.
  1. Eigenschaften: Der AES-Algorithmus ist eine symmetrische Verschlüsselung, und der AES-Algorithmus bietet eine bessere Sicherheit und Effizienz, je länger die vom AES verwendete Schlüssellänge ist Algorithmus, desto sicherer ist er. Je höher das Geschlecht.

2. MD5-Verschlüsselung in PHP verwenden

Verwenden Sie die Funktion md5() in PHP, um Zeichenfolgen mit MD5 zu verschlüsseln. Der Beispielcode lautet wie folgt:

$str = "hello world";
$encrypted_str = md5($str);
echo $encrypted_str;
Nach dem Login kopieren
# 🎜 🎜#Das Ausgabeergebnis ist:

5eb63bbbe01eeed093cb22bb8f5acdc3
Nach dem Login kopieren

3. Verwenden Sie die sha1-Verschlüsselung in PHP.

Verwenden Sie die sha1()-Funktion in PHP, um Zeichenfolgen mit SHA1 zu verschlüsseln folgt:

$str = "hello world";
$encrypted_str = sha1($str);
echo $encrypted_str;
Nach dem Login kopieren

Das Ausgabeergebnis ist:

2ef7bde608ce5404e97d5f042f95f89f1c232871
Nach dem Login kopieren

4. Verwenden Sie die Base64-Codierung in PHP.

Verwenden Sie die Funktion base64_encode() in PHP zum Codieren Zeichenfolgen Base64-Kodierung, verwenden Sie die Funktion base64_decode(), um die base64-kodierte Zeichenfolge zu dekodieren. Der Beispielcode lautet wie folgt:

$str = "hello world";
$encoded_str = base64_encode($str);
echo $encoded_str . "
";  // 输出:aGVsbG8gd29ybGQ=
$decoded_str = base64_decode($encoded_str);
echo $decoded_str;    // 输出:hello world
Nach dem Login kopieren

5. Verwenden Sie die OpenSSL-Erweiterungsbibliothek in PHP für die AES-Verschlüsselung und -Entschlüsselung#🎜🎜 ## 🎜🎜#Die Verwendung der OpenSSL-Erweiterungsbibliothek in PHP kann eine AES-Verschlüsselung und -Entschlüsselung von Daten durchführen. Der Beispielcode lautet wie folgt:

// AES加密
function encrypt($str, $key) {
    $iv_size = openssl_cipher_iv_length('AES-256-CBC');
    $iv = openssl_random_pseudo_bytes($iv_size);   // 生成随机IV
    $encrypted_str = openssl_encrypt($str, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
    $result = base64_encode($iv . $encrypted_str);
    return $result;
}

// AES解密
function decrypt($encrypted_str, $key) {
    $encrypted_str = base64_decode($encrypted_str);
    $iv_size = openssl_cipher_iv_length('AES-256-CBC');
    $iv = substr($encrypted_str, 0, $iv_size);
    $encrypted_str = substr($encrypted_str, $iv_size);
    $result = openssl_decrypt($encrypted_str, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
    return $result;
}

// 测试代码
$key = "12345678901234567890123456789012";   // AES密钥,32位
$str = "hello world";
$encrypted_str = encrypt($str, $key);
echo $encrypted_str . "
";
$decrypted_str = decrypt($encrypted_str, $key);
echo $decrypted_str . "
";
Nach dem Login kopieren

Das Ausgabeergebnis ist:

7KdkeT91N7zg8WZrZ1Oehg==xsYlbGhMF8dNQXH1LqTwVw==
hello world
Nach dem Login kopieren
#🎜🎜 # 6. Verwendung in PHP-Schritten für die AES-Verschlüsselung und -Entschlüsselung mithilfe der mcrypt-Erweiterungsbibliothek

Die Schritte zur Verwendung der mcrypt-Erweiterungsbibliothek für die AES-Verschlüsselung und -Entschlüsselung sind wie folgt:

Laden der mcrypt-Erweiterungsbibliothek#🎜🎜 #

extension_loaded('mcrypt');  // 检查是否已经加载mcrypt扩展库
Nach dem Login kopieren

Zufällige IV generieren

    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    Nach dem Login kopieren
  1. Verwenden Sie mcrypt_encrypt() Funktion für AES-Verschlüsselung
    $encrypted_str = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $str, MCRYPT_MODE_CBC, $iv);
    Nach dem Login kopieren
  1. Funktion mcrypt_decrypt() für AES-Entschlüsselung verwenden
    $decrypted_str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $encrypted_str, MCRYPT_MODE_CBC, $iv);
    Nach dem Login kopieren
  1. base64_encode() verwenden Funktion zum Base64-Codieren der verschlüsselten Daten
# 🎜🎜#
$encrypted_str = base64_encode($iv . $encrypted_str);
Nach dem Login kopieren
  1. Verwenden Sie die Funktion substr(), um den IV- und Chiffretext-Teil der verschlüsselten Daten abzufangen
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$iv = substr($encrypted_str, 0, $iv_size);
$encrypted_str = substr($encrypted_str, $iv_size);
Nach dem Login kopieren
    Der vollständige Beispielcode für die AES-Verschlüsselung und -Entschlüsselung lautet wie folgt:
  1. // AES加密
    function encrypt($str, $key) {
        $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
        $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);    // 生成随机IV
        $encrypted_str = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $str, MCRYPT_MODE_CBC, $iv);
        $result = base64_encode($iv . $encrypted_str);    // 对IV和密文进行base64编码
        return $result;
    }
    
    // AES解密
    function decrypt($encrypted_str, $key) {
        $encrypted_str = base64_decode($encrypted_str);  // 对base64编码的字符串进行解码
        $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
        $iv = substr($encrypted_str, 0, $iv_size);       // 截取IV值
        $encrypted_str = substr($encrypted_str, $iv_size);    // 截取密文部分
        $result = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $encrypted_str, MCRYPT_MODE_CBC, $iv);
        return $result;
    }
    
    // 测试代码
    $key = "1234567890123456";       // AES密钥,16位
    $str = "hello world";
    $encrypted_str = encrypt($str, $key);
    echo $encrypted_str . "
    ";
    $decrypted_str = decrypt($encrypted_str, $key);
    echo $decrypted_str . "
    ";
    Nach dem Login kopieren
  2. Das Ausgabeergebnis ist:
Ym63V4DnBc/jk9bNNzlngQtdeecbBZ+E7IHvC6khMgg=
hello world
Nach dem Login kopieren
    Zusammenfassung:
  1. The Oben ist die Methode zur Datenverschlüsselung und -entschlüsselung in PHP aufgeführt. Mit unterschiedlichen Eigenschaften und anwendbaren Szenarien sollten Entwickler geeignete Verschlüsselungsmethoden basierend auf den tatsächlichen Anforderungen und Sicherheitsanforderungen auswählen. Bei der Verwendung von Verschlüsselungsmethoden müssen Sie auch auf den Sicherheitsschutz von Schlüsseln und Verschlüsselungsprozessen achten, um Angriffen durch Hacker vorzubeugen.

Das obige ist der detaillierte Inhalt vonWie verschlüssele und entschlüssele ich Daten in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Beschreiben Sie die soliden Prinzipien und wie sie sich für die PHP -Entwicklung anwenden. Beschreiben Sie die soliden Prinzipien und wie sie sich für die PHP -Entwicklung anwenden. Apr 03, 2025 am 12:04 AM

Die Anwendung des soliden Prinzips in der PHP -Entwicklung umfasst: 1. Prinzip der Einzelverantwortung (SRP): Jede Klasse ist nur für eine Funktion verantwortlich. 2. Open and Close Principle (OCP): Änderungen werden eher durch Erweiterung als durch Modifikation erreicht. 3.. Lischs Substitutionsprinzip (LSP): Unterklassen können Basisklassen ersetzen, ohne die Programmgenauigkeit zu beeinträchtigen. 4. Schnittstellen-Isolationsprinzip (ISP): Verwenden Sie feinkörnige Schnittstellen, um Abhängigkeiten und nicht verwendete Methoden zu vermeiden. 5. Abhängigkeitsinversionsprinzip (DIP): Hoch- und niedrige Module beruhen auf der Abstraktion und werden durch Abhängigkeitsinjektion implementiert.

Wie setze ich nach dem Neustart des Systems automatisch Berechtigungen von Unixsocket fest? Wie setze ich nach dem Neustart des Systems automatisch Berechtigungen von Unixsocket fest? Mar 31, 2025 pm 11:54 PM

So setzen Sie die Berechtigungen von Unixsocket automatisch nach dem Neustart des Systems. Jedes Mal, wenn das System neu startet, müssen wir den folgenden Befehl ausführen, um die Berechtigungen von Unixsocket: sudo ...

Erklären Sie das Konzept der späten statischen Bindung in PHP. Erklären Sie das Konzept der späten statischen Bindung in PHP. Mar 21, 2025 pm 01:33 PM

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Apr 01, 2025 pm 03:12 PM

Senden von JSON -Daten mithilfe der Curl -Bibliothek von PHP in der PHP -Entwicklung müssen häufig mit externen APIs interagieren. Eine der gängigen Möglichkeiten besteht darin, die Curl Library zu verwenden, um Post � ...

Rahmensicherheitsmerkmale: Schutz vor Schwachstellen. Rahmensicherheitsmerkmale: Schutz vor Schwachstellen. Mar 28, 2025 pm 05:11 PM

In Artikel werden wichtige Sicherheitsfunktionen in Frameworks erörtert, um vor Schwachstellen zu schützen, einschließlich Eingabevalidierung, Authentifizierung und regelmäßigen Aktualisierungen.

Wie debugge ich den CLI -Modus in PhpStorm? Wie debugge ich den CLI -Modus in PhpStorm? Apr 01, 2025 pm 02:57 PM

Wie debugge ich den CLI -Modus in PhpStorm? Bei der Entwicklung mit PHPSTORM müssen wir manchmal den PHP im CLI -Modus (COMS -Zeilenschnittstellen) debuggen ...

See all articles