Heim Backend-Entwicklung PHP-Tutorial So implementieren Sie mit PHP Datenverschlüsselungs- und -entschlüsselungsfunktionen

So implementieren Sie mit PHP Datenverschlüsselungs- und -entschlüsselungsfunktionen

Sep 05, 2023 pm 06:07 PM
php 解密 数据加密

如何使用 PHP 实现数据加密和解密功能

So verwenden Sie PHP, um Datenverschlüsselungs- und -entschlüsselungsfunktionen zu implementieren

Einführung:
Im modernen Internetzeitalter ist die Sicherheit von Daten von entscheidender Bedeutung. Um sensible Daten zu schützen, müssen wir die Daten häufig ver- und entschlüsseln. PHP ist eine beliebte serverseitige Programmiersprache, die zahlreiche Verschlüsselungs- und Entschlüsselungsfunktionen und Bibliotheken zur Implementierung verschiedener Verschlüsselungsalgorithmen bereitstellt. In diesem Artikel wird beschrieben, wie PHP zum Implementieren von Datenverschlüsselungs- und -entschlüsselungsfunktionen verwendet wird, und es werden Codebeispiele bereitgestellt.

1. Verwenden Sie einen symmetrischen Verschlüsselungsalgorithmus. Der symmetrische Verschlüsselungsalgorithmus ist die einfachste und am häufigsten verwendete Verschlüsselungsmethode, die auch als Shared-Key-Verschlüsselung bezeichnet wird. Es verwendet denselben Schlüssel für die Verschlüsselung und Entschlüsselung. PHP bietet die Implementierung mehrerer symmetrischer Verschlüsselungsalgorithmen wie AES, DES, 3DES usw. Das Folgende ist ein Beispielcode, der den AES-Verschlüsselungsalgorithmus verwendet:

function encrypt($data, $key) {
    $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
    $encrypted = openssl_encrypt($data, 'aes-256-cbc', $key, 0, $iv);
    return base64_encode($iv . $encrypted);
}

function decrypt($data, $key) {
    $data = base64_decode($data);
    $iv = substr($data, 0, openssl_cipher_iv_length('aes-256-cbc'));
    $encrypted = substr($data, openssl_cipher_iv_length('aes-256-cbc'));
    return openssl_decrypt($encrypted, 'aes-256-cbc', $key, 0, $iv);
}

$key = 'secret_key';
$data = 'sensitive_data';

$encryptedData = encrypt($data, $key);
echo 'Encrypted data: ' . $encryptedData . PHP_EOL;

$decryptedData = decrypt($encryptedData, $key);
echo 'Decrypted data: ' . $decryptedData . PHP_EOL;
Nach dem Login kopieren

Codeerklärung:

    Die Funktion encrypt verwendet die Funktion openssl_encrypt, um die Daten zu verschlüsseln, und verwendet dann < Die Funktion code>base64_encode konvertiert verschlüsselte Daten in ein lesbares Zeichenfolgenformat.
  • encrypt 函数使用 openssl_encrypt 函数对数据进行加密,然后使用 base64_encode 函数将加密后的数据转换为可读的字符串格式。
  • decrypt 函数使用 base64_decode 函数将加密后的字符串转换为二进制格式,从中提取出 IV(Initialization Vector)和加密后的数据,然后使用 openssl_decrypt 函数对数据进行解密。
  • openssl_cipher_iv_length 函数返回指定加密算法的 IV 长度。

二、使用非对称加密算法
非对称加密算法使用一对密钥,分为公钥和私钥。公钥用于加密数据,私钥用于解密数据。PHP 提供了多种非对称加密算法的实现,如 RSA。下面是一个使用 RSA 加密算法的示例代码:

function encrypt($data, $publicKey) {
    openssl_public_encrypt($data, $encrypted, $publicKey);
    return base64_encode($encrypted);
}

function decrypt($encryptedData, $privateKey) {
    openssl_private_decrypt(base64_decode($encryptedData), $decrypted, $privateKey);
    return $decrypted;
}

$publicKey = openssl_pkey_get_public('file://path/to/public_key.pem');
$privateKey = openssl_pkey_get_private('file://path/to/private_key.pem');

$data = 'sensitive_data';

$encryptedData = encrypt($data, $publicKey);
echo 'Encrypted data: ' . $encryptedData . PHP_EOL;

$decryptedData = decrypt($encryptedData, $privateKey);
echo 'Decrypted data: ' . $decryptedData . PHP_EOL;
Nach dem Login kopieren

代码解释:

  • encrypt 函数使用 openssl_public_encrypt 函数对数据进行加密,然后使用 base64_encode 函数将加密后的数据转换为可读的字符串格式。
  • decrypt 函数使用 base64_decode 函数将加密后的字符串转换为二进制格式,然后使用 openssl_private_decrypt 函数对数据进行解密。

三、使用哈希函数
哈希函数是一种将任意长度的数据映射为固定长度哈希值的函数。PHP 提供了多种常用的哈希函数,如 MD5、SHA1、SHA256 等。哈希函数通常用于校验数据的完整性,而不是加密和解密数据。下面是一个使用 MD5 哈希函数的示例代码:

$data = 'sensitive_data';

$hashedData = md5($data);
echo 'Hashed data: ' . $hashedData . PHP_EOL;
Nach dem Login kopieren

代码解释:

  • md5Die Funktion decrypt verwendet die Funktion base64_decode, um die verschlüsselte Zeichenfolge in ein Binärformat zu konvertieren, den IV (Initialisierungsvektor) und die verschlüsselten Daten daraus zu extrahieren und dann openssl_decrypt entschlüsselt Daten.
openssl_cipher_iv_length-Funktion gibt die IV-Länge des angegebenen Verschlüsselungsalgorithmus zurück.


2. Verwenden Sie einen asymmetrischen Verschlüsselungsalgorithmus. 🎜Der asymmetrische Verschlüsselungsalgorithmus verwendet ein Schlüsselpaar, unterteilt in einen öffentlichen Schlüssel und einen privaten Schlüssel. Der öffentliche Schlüssel wird zum Verschlüsseln von Daten und der private Schlüssel zum Entschlüsseln von Daten verwendet. PHP bietet Implementierungen mehrerer asymmetrischer Verschlüsselungsalgorithmen wie RSA. Das Folgende ist ein Beispielcode, der den RSA-Verschlüsselungsalgorithmus verwendet: 🎜rrreee🎜Codeerklärung: 🎜🎜🎜Die Funktion encrypt verwendet die Funktion openssl_public_encrypt, um die Daten zu verschlüsseln, und verwendet dann base64_encode Funktion konvertiert verschlüsselte Daten in ein lesbares String-Format. 🎜🎜Die Funktion decrypt verwendet die Funktion base64_decode, um die verschlüsselte Zeichenfolge in das Binärformat zu konvertieren, und verwendet dann die Funktion openssl_private_decrypt, um die Daten zu entschlüsseln. 🎜🎜🎜3. Hash-Funktion verwenden🎜Die Hash-Funktion ist eine Funktion, die Daten beliebiger Länge in einen Hash-Wert fester Länge abbildet. PHP bietet eine Vielzahl häufig verwendeter Hash-Funktionen wie MD5, SHA1, SHA256 usw. Hash-Funktionen werden in der Regel zur Überprüfung der Datenintegrität und nicht zum Ver- und Entschlüsseln von Daten verwendet. Hier ist ein Beispielcode, der die MD5-Hash-Funktion verwendet: 🎜rrreee🎜Code-Erklärung: 🎜🎜🎜md5-Funktion berechnet den MD5-Hash-Wert der angegebenen Daten. 🎜🎜🎜Fazit: 🎜In diesem Artikel wird erläutert, wie Sie mit PHP Datenverschlüsselungs- und -entschlüsselungsfunktionen implementieren. Wir diskutieren symmetrische Verschlüsselungsalgorithmen, asymmetrische Verschlüsselungsalgorithmen und Hash-Funktionen und stellen entsprechende Codebeispiele bereit. Mithilfe dieser Technologien können wir die Sicherheit sensibler Daten schützen und sicherstellen, dass diese während der Übertragung und Speicherung nicht gestohlen oder manipuliert werden. 🎜

Das obige ist der detaillierte Inhalt vonSo implementieren Sie mit PHP Datenverschlüsselungs- und -entschlüsselungsfunktionen. 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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

7 PHP-Funktionen, die ich leider vorher nicht kannte 7 PHP-Funktionen, die ich leider vorher nicht kannte Nov 13, 2024 am 09:42 AM

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

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.

Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge Feb 07, 2025 pm 12:12 PM

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Erklären Sie die späte statische Bindung in PHP (statisch: :). Erklären Sie die späte statische Bindung in PHP (statisch: :). Apr 03, 2025 am 12:04 AM

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Apr 03, 2025 am 12:03 AM

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.

See all articles