Heim  >  Artikel  >  Backend-Entwicklung  >  Analysieren Sie die Rolle von PHP php_openssl.dll

Analysieren Sie die Rolle von PHP php_openssl.dll

高洛峰
高洛峰Original
2016-12-30 14:00:341177Durchsuche

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 übertragen Sie sie dann.

OpenSSL ist eine Reihe von Verschlüsselungstools für SSL/TLS-Protokolle. 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 Daten.
Die heutige Verschlüsselungstechnologie und der Verschlüsselungsalgorithmus sind öffentlich, das heißt, jeder kennt die für die Verschlüsselung verwendete Berechnungsmethode.
Der Schlüssel ist jedoch der Kern der Verschlüsselung 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 verwenden Passwortschutz. Beim Generieren eines privaten Schlüssels 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 Datei etest.txt 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
YUtGwOaD w6Jn0A. HRt64UwPOKoaeL9RVqp9vgtiFC/uXis5UeyZCWS1z7Jsih8Aa+

Da/DQN0sOCX85OdK/TDewNx8mTaYBbVf4jBZBgkqhkiG9w0BBwEwGgYIKoZIhvcN

AwIwDgICAKAAECN xsgiJ2 s+1ugDC6JknPL +rdybcddcyph+bmyjqrup0he/gq5wsj
sv8cdkoudvy5xg440yial3Z3YSI = Verwenden Sie den privaten Schlüssel, um zu entschlüsseln, um zu entschlüsseln und in dest.txt -Datei zu entschlüsseln. Sehen Sie sich den entschlüsselten Briefinhalt an. Er stimmt vollständig mit dem Inhalt des ursprünglichen Klartextbriefs überein aaaaaa

5. Einfache Datei, verschlüsselter
Nur-Text-Dateiinhalt:

$ 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üfen – 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. enc
aes-256-cbc-Entschlüsselungspasswort eingeben:
1
22
333
4444
55555
Hallo

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

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

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

7. Testen von SSL-Client und -Server
Starten Der SSL-Server verwendet den privaten Schlüssel und das 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!

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