So implementieren Sie asymmetrische Verschlüsselung in PHP

藏色散人
Freigeben: 2023-03-03 21:52:01
Original
3293 Leute haben es durchsucht

Sie können OpenSSL in PHP verwenden, um eine asymmetrische Verschlüsselung zu erreichen. Die Verwendung der asymmetrischen Verschlüsselung basiert hauptsächlich auf dem öffentlichen Schlüssel und dem privaten Schlüssel von OpenSSL und verwendet einfach die Verschlüsselung mit öffentlichem Schlüssel und die Entschlüsselung mit privatem Schlüssel , es ist asymmetrisch. Der Verschlüsselungsalgorithmus erfordert zwei Schlüssel zur Verschlüsselung und Entschlüsselung.

So implementieren Sie asymmetrische Verschlüsselung in PHP

Empfohlen: „PHP-Video-Tutorial

php verwendet OpenSSL, um asymmetrische Verschlüsselung zu implementieren

Erklären wir zunächst, was asymmetrische Verschlüsselung ist:

Symmetrische VerschlüsselungAlgorithmus In der Verschlüsselung Das Gleiche Der geheime Schlüssel wird für die Verschlüsselung und Entschlüsselung verwendet. Der asymmetrische Verschlüsselungsalgorithmus erfordert zwei Schlüssel für die Verschlüsselung und Entschlüsselung. Diese beiden geheimen Schlüssel sind der öffentliche Schlüssel (öffentlicher Schlüssel) und der private Schlüssel (privater Schlüssel). Schlüssel, auch privater Schlüssel genannt).




Arbeitsprozess

Wie in der Abbildung oben gezeigt, wird asymmetrische Verschlüsselung zwischen Partei A und Partei B verwendet, um die sichere Übertragung wichtiger Informationen abzuschließen.


1. Partei B generiert ein Schlüsselpaar (öffentlicher Schlüssel und privater Schlüssel) und gibt den öffentlichen Schlüssel an andere Parteien weiter. (Die andere Partei ist die vertrauende Partei)

2. Partei A, die den öffentlichen Schlüssel erhält, verwendet den Schlüssel, um die vertraulichen Informationen zu verschlüsseln und sendet ihn dann an Partei B.

3. Partei B verwendet dann einen anderen dedizierten Schlüssel (privaten Schlüssel), den sie selbst gespeichert hat, um die verschlüsselten Informationen zu entschlüsseln. Partei B kann ihren privaten Schlüssel (Privatschlüssel) nur zum Entschlüsseln der mit dem entsprechenden öffentlichen Schlüssel verschlüsselten Informationen verwenden.

Selbst wenn der Angreifer während des Übertragungsprozesses den übertragenen Chiffretext abfängt und den öffentlichen Schlüssel von B erhält, kann er den Chiffretext nicht entschlüsseln, da nur der private Schlüssel von B den Chiffretext entschlüsseln kann.

Wenn B A auf verschlüsselte Informationen antworten möchte, muss A zunächst den öffentlichen Schlüssel von A zur Verschlüsselung an B veröffentlichen, und A selbst speichert den privaten Schlüssel von A zur Entschlüsselung.




Vorteile und Nachteile

Im Vergleich zur symmetrischen Verschlüsselung bietet die asymmetrische Verschlüsselung eine bessere Sicherheit: Bei der symmetrischen Verschlüsselung verwenden beide Parteien denselben geheimen Schlüssel kompromittiert wird. Bei der asymmetrischen Verschlüsselung wird ein Paar geheimer Schlüssel verwendet, einer für die Verschlüsselung und einer für die Entschlüsselung. Der öffentliche Schlüssel ist öffentlich und der geheime Schlüssel wird nicht wie bei der symmetrischen Verschlüsselung vor der Kommunikation synchronisiert.

Der Nachteil der asymmetrischen Verschlüsselung besteht darin, dass die Ver- und Entschlüsselung lange dauert und langsam ist und sich nur für die Verschlüsselung kleiner Datenmengen eignet.

Die wichtigsten Algorithmen, die bei der asymmetrischen Verschlüsselung verwendet werden, sind: RSA, Elgamal, Rucksackalgorithmus, Rabin, D-H, ECC (Kryptographiealgorithmus mit elliptischen Kurven) usw.

Verschiedene Algorithmen verfügen über unterschiedliche Implementierungsmechanismen. Bitte beachten Sie die detaillierten Informationen zum entsprechenden Algorithmus.

Die Verwendung der asymmetrischen Verschlüsselung basiert hauptsächlich auf dem öffentlichen Schlüssel und dem privaten Schlüssel von OpenSSL, wobei die Verschlüsselung mit öffentlichem Schlüssel und die Entschlüsselung mit privatem Schlüssel oder die Verschlüsselung mit privatem Schlüssel und die Entschlüsselung mit öffentlichem Schlüssel verwendet werden.

1. Installieren Sie die OpenSSL- und PHP-OpenSSL-Erweiterungen.

2. Generieren Sie den privaten Schlüssel. Die Länge des privaten Schlüssels und der Passwortschutz können während der Generierung angegeben werden. rsa-Befehl Wird zum Verarbeiten von RSA-Schlüsseln, zur Formatkonvertierung und zum Drucken von Informationen verwendet. Da es sich um eine Verschlüsselung mit privatem Schlüssel und eine Entschlüsselung mit öffentlichem Schlüssel handelt, können wir, solange wir wissen, was unser öffentlicher Schlüssel ist, den generierten Chiffretext zum Entschlüsseln verwenden: (Ich habe das relevante Wissen zur Entschlüsselung im Code mit Anmerkungen versehen, um das Verständnis für alle zu erleichtern.)

openssl genrsa -out rsa_private_key.pem 1024
Nach dem Login kopieren

Wenn etwas nicht stimmt, weisen Sie es bitte darauf hin. Ich hoffe, es hilft allen.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie asymmetrische Verschlüsselung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage