Heim >Backend-Entwicklung >PHP-Tutorial >php Wozu dient die Datei php_openssl.dll?

php Wozu dient die Datei php_openssl.dll?

怪我咯
怪我咯Original
2017-07-06 10:01:152160Durchsuche

Dieser Artikel ist eine detaillierte Analyse und Einführung in die Rolle von php_openssl.dll in PHP.

1.Openssl
Datenverschlüsselung ist ein wichtiger Teil der Informationsübertragung. Es ist in der Tat eine sehr unsichere Praxis, Informationen im Klartext zu übertragen Daten werden in Chiffretextdaten umgewandelt und dann übertragen.

OpenSSL ist eine Reihe von Verschlüsselungstools für das SSL/TLS-Protokoll. Seine Funktionen sind:

1.
2. Generieren Sie ein Zertifikat, also ein digitales Signaturzertifikat, das einen öffentlichen Schlüssel enthält, der zum Verschlüsseln 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 entschlüsselt werden
Privater Schlüssel. Mit dem privaten Schlüssel verschlüsselte Daten können mit dem öffentlichen Schlüssel entschlüsselt werden
Berechnungsinformationen
4. SSL/TLS-Client- und Server-Seitentests 🎜>5. Behandeln Sie die Verschlüsselung von S/MIME-Tags und E-Mails.

2. Einführung in die Verschlüsselungstechnologie.

Verschlüsselung, also der Prozess zur Umwandlung von Klartextdaten in Chiffretextdaten. Verschlüsselungsalgorithmus: Ein Algorithmus, der bei der Datenverschlüsselung verwendet wird. Schlüssel: Der Verschlüsselungsalgorithmus Eine bestimmte Methode mit dem Schlüsselvorgang verschlüsselt die Klartextdaten, um verschlüsselte Daten zu generieren. Beim Entschlüsseln verwendet der Verschlüsselungsalgorithmus den Schlüssel, um die verschlüsselten Daten in Klartextdaten umzuwandeln öffentlich, das heißt jeder kennt die Berechnungsmethode, die bei der Verschlüsselung verwendet wird. Aber nur durch die Verwendung des Schlüssels ist der Schutz des Schlüssels der Kern 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 übernehmen
$ openssl dsaparam -noout -out dsakey0.pem -genkey 1024
#RSA-Algorithmus verwenden

$ openssl genrsa -out rsakey0.pem 1024

#RSA-Algorithmus verwenden und verwenden Sie einen Passwortschutz. Sie müssen 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 dieses Passwort eingeben openssl genrsa -des3 -out rsakey1 .pem 10242. Methode zur Generierung öffentlicher SchlüsselÖffentlichen Schlüssel basierend auf privatem Schlüssel generieren
#Öffentlichen Schlüssel des DSA-Algorithmus generieren
$ 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

#Generieren Sie das Zertifikat des DSA-Algorithmus

$ 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 Klartextnachrichteninhalt:

$ cat test.txt
111111
222222
333333
444444
aaaaaa
Verwenden Sie das Zertifikat, um den Klartextbrief zu verschlüsseln und in der 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

Content-Dis
position
: attachment; "smime.p7m"
Content-TRANSFER-ENCODING: BASE64

MiibyayjkozihvCNAQCDoiibutCAU0CAQAXGEKCAQAWUJBFMQSWCQYDVQQG Z2L0CyBQDHKGTHRKAGAR71MH4NRX/UWDQYJKOHVCNAQEBQAEGYCBWWQK 🎜> ZJ77TCNT RXIDZQMBC/LU063SLKVBK6MQMQMQMQT+NPFOOFTZIKDFVKLDH0YYYQHMZDSCYQ Yutgwoadw6jn0AHRT64uwpokoael9rvqp9VGTIFC/UXIS5ueyZCWS1Z7jsihhhhhhhhh 8AA+ DA /DQN0SOCX85ODK/TDEWNX8MTAYBBVF4JBZBGKQHHK9W0BBWEWGGYIKOZCN
AWIWDGICAECNXSGIJ2S =Verwenden Sie den privaten Schlüssel zum Entschlüsseln und Ausgeben in die Datei dtest.txt:

$ openssl smime -decrypt -in etest.txt -inkey rsakey0.pem -out dtest .txt Zeigt den entschlüsselten Briefinhalt an, der genau dem ursprünglichen Klartext-Briefinhalt entspricht


$ cat dtest.txt
111111222222333333
444444
aaaaaa



5. Einfache Dateiverschlüsselung


Inhalt der Klartextdatei:

$ Katzentest .txt

1

22

333

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

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

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

6. EinfacheZeichenfolgeVerschlüsselung
verschlüsselt mit base64:

$ echo " encode me“ | openssl enc -base64
ZW5jb2RlIG1lCg== Beim Entschlüsseln müssen Sie den Verschlüsselungsalgorithmus kennen, 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 dem Zertifikat, der Rolle „-www " Ja, wenn der Client eine Verbindung zum Server herstellt, wird eine Webseite mit Statusinformationen an den Client gesendet.

openssl s_server -key mykey.pem -cert mycert.pem -www verbindet die SSL-Server zum Client. Der Client erhält das Zertifikat des Servers:

openssl s_client -connect localhost:4433

Das obige ist der detaillierte Inhalt vonphp Wozu dient die Datei php_openssl.dll?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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