Heim > php教程 > PHP开发 > Analysieren Sie die Rolle von PHP php_openssl.dll

Analysieren Sie die Rolle von PHP php_openssl.dll

高洛峰
Freigeben: 2016-12-23 17:57:11
Original
1222 Leute haben es durchsucht

1. Einführung in openssl
Die Übertragung von Informationen im Klartext ist in der Tat eine sehr unsichere Praxis.
Daten müssen in Chiffretext umgewandelt werden Daten und dann übertragen.

OpenSSL ist eine Reihe von Verschlüsselungstools für SSL/TLS-Protokolle:
1. Generieren Sie ein Zertifikat. ein digitales Signaturzertifikat, das einen öffentlichen Schlüssel enthält, der zum Ver- und Entschlüsseln von Daten in eine Richtung verwendet werden kann. Das heißt, mit dem öffentlichen Schlüssel verschlüsselte Daten können nur mit dem privaten Schlüssel entschlüsselt werden kann mit dem öffentlichen Schlüssel entschlüsselt werden
4 🎜>2. Einführung in die Verschlüsselungstechnologie
Verschlüsselung ist der Prozess der Umwandlung von Klartextdaten in Chiffriertextdaten, um die Vertraulichkeit des Klartextes zu gewährleisten.
Verschlüsselungsalgorithmus: Eine Methode, die im Datenverschlüsselungsprozess verwendet wird. Wird verwendet, um Klartext in Chiffretext umzuwandeln. Der Verschlüsselungsalgorithmus verschlüsselt die Klartextdaten, indem er einen bestimmten Vorgang mit dem Schlüssel ausführt, um verschlüsselte Daten zu generieren. Beim Entschlüsseln übergibt der Verschlüsselungsalgorithmus den Schlüssel Klartextdaten. Die heutige Verschlüsselungstechnologie und der Verschlüsselungsalgorithmus sind öffentlich, d der Datensicherheit.

3. Einführung in die Verwendung des OpenSSL-Tools

1. Methode zur Generierung privater Schlüssel

Um einen privaten Schlüssel zu generieren, können Sie unten vorgestellt werden
#DSA-Algorithmus verwenden
$ openssl dsaparam -noout -out dsakey0.pem -genkey 1024
#RSA-Algorithmus verwenden
$ openssl genrsa -out rsakey0 .pem 1024
#RSA-Algorithmus verwenden und Wenn Sie einen privaten Schlüssel generieren, müssen Sie ein Passwort eingeben, um den privaten Schlüssel zu schützen.
#Wenn Sie diesen privaten Schlüssel für Verschlüsselungs-/Entschlüsselungsvorgänge verwenden, müssen Sie auch ein Passwort eingeben, um den privaten Schlüssel zu schützen. Sie müssen dieses Passwort eingeben.

$ openssl genrsa -des3 -out rsakey1.pem 10242. Methode zur Generierung des öffentlichen Schlüssels

Generieren Sie den öffentlichen Schlüssel basierend auf dem privaten Schlüssel
#Generieren Sie den öffentlichen Schlüssel des DSA-Algorithmus
$ openssl dsa -in dsakey0.pem -pubout -out dsakey0-pub.pem

#Generieren Sie den öffentlichen Schlüssel des RSA-Algorithmus

$ openssl rsa -in rsakey0.pem -pubout -out rsakey0-pub. pem3.Selbstsigniertes Zertifikat Generierungsmethode
#DSA-Algorithmus-Zertifikat generieren
$ openssl req -x509 -key dsakey0.pem -days 365 -out mycert-dsa.pem -new
#RSA-Algorithmus-Zertifikat generieren
$ openssl req -x509 -key rsakey0.pem -days 365 -out mycert-rsa.pem -new

4. Zertifikat für E-Mail-Verschlüsselung verwenden
Unser Klartext-Nachrichteninhalt:

$ cat test.txt
111111
222222
333333
444444
aaaaaa
Verwenden Sie das Zertifikat, um den Klartextbrief zu verschlüsseln und ihn in die etest.txt-Datei auszugeben:
$ openssl smime -encrypt -in test.txt -out etest.txt mycert-rsa.pem Den verschlüsselten Chiffretext-Inhalt anzeigen:

$ cat etest.txt

MIME-Version: 1.0

Inhalt -Disposition: Dateiname="smime.p7m"
Content-Type: application/x-pkcs7-mime; name="smime.p7m"
Content-Transfer-Encoding : base64

MIIBYAYJKoZIhvcNAQcDoIIBUTCCAU0CAQAxgewwgekCAQAwUjBFMQswCQYDVQQG
EwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lk
Z2l0cyBQdH kgTHRkAgkAr71mh4NRX/UwDQYJKoZIhvcNAQEBBQAEgYCbrA1WBwQK
Zj7TcNtrxiDz qMBc/Lu063SLKvBK6mQMqT+npFOOFtzIKdFVkldH0YyQhMZDSCyq

YUtGwOaDw6Jn0A HRt64UwPOKoaeL9RVqp9vgtiFC/uXis5UeyZCWS1z7Jsih8Aa+

Da/DQN0sOCX85OdK/TDewNx8mTaYBbVf4jBZBgkqhkiG9w0BBwEwGgYIKoZIhvcN
AwIwDgICAKAAECNxsgiJ2 s+ 1ugDC6JknPL+rDYBCddcyPH+bMYjqrUP0hE/GQ5WSj
sv8CDkOUdvY5XG440yiAL3Z3ysI=Privaten Schlüssel zum Entschlüsseln und Ausgeben in die dtest.txt-Datei verwenden:

$ openssl smime -decrypt -in etest.txt -rsakey0.pem -out dtest. txt Sehen Sie sich den Inhalt des entschlüsselten Briefes an. Er stimmt vollständig mit dem Inhalt des ursprünglichen Klartextbriefs überein >aaaaaa

5. Einfache Datei Verschlüsselter
Inhalt der Nur-Text-Datei:

$ cat test.txt
1
22
333
4444

55555

Hallo verschlüsselte Klartextdatei, die Ausgabe ist eine Test-.enc-Datei, geben Sie „123123“ als Verschlüsselungskennwort ein:

$ openssl enc -aes-256-cbc -salt -in test.txt -out test.enc
Geben Sie das AES-256-CBC-Verschlüsselungskennwort ein:
Überprüfung – Geben Sie das AES-256-CBC-Verschlüsselungskennwort ein: Entschlüsseln Sie den Chiffretext und geben Sie „123123“ als Entschlüsselungskennwort ein:

$ openssl enc -d -aes-256-cbc -in test.
aes-256-cbc-Entschlüsselungspasswort eingeben:
1
22
333

4444

55555
Hallo

6. Einfache String-Verschlüsselung
Verschlüsseln mit base64:

$ echo "encode me" | den Verschlüsselungsalgorithmus, bevor Sie entschlüsseln können:

$ echo "ZW5jb2RlIG1lCg==" |. openssl enc -base64 -d
encode me

7. Testen von SSL-Client und -Server

Starten Sie den SSL-Server mit dem privaten Schlüssel und Zertifikat „-www“. Die Funktion besteht darin, eine Statusinformations-Webseite an den Client zu senden, wenn der Client eine Verbindung zum Server herstellt

openssl s_server -key mykey.pem -. cert mycert.pem -www stellt eine Verbindung zum SSL-Server her und der Client erhält das Serverzertifikat:

openssl s_client -connect localhost:4433

Weitere Artikel zur Analyse der Rolle von PHP php_openssl.dll finden Sie auf der chinesischen PHP-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 Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage