Maison >développement back-end >tutoriel php >Analyser le rôle de php php_openssl.dll

Analyser le rôle de php php_openssl.dll

高洛峰
高洛峰original
2016-12-30 14:00:341191parcourir

1. Introduction à openssl
Le cryptage des données est une partie importante de la transmission d'informations. La transmission de toute information en texte clair est en effet une pratique très dangereuse. Par conséquent,
les données doivent être cryptées. données puis les transmettre.

OpenSSL est un ensemble d'outils de cryptage pour le protocole SSL/TLS. Ses fonctions sont :
1. Générer une clé privée.
2 .Générer un certificat. un certificat de signature numérique, qui contient une clé publique qui peut être utilisée pour crypter et déchiffrer les données dans un sens. Autrement dit, les données cryptées à l'aide de la clé publique ne peuvent être déchiffrées qu'à l'aide de la clé privée
. peut être déchiffré à l'aide de la clé publique.
3. Calculer le résumé du message
4. Tests côté client et serveur SSL
5. 🎜>2. Introduction à la technologie de cryptage.

Le cryptage est le processus de conversion des données en texte brut en données en texte chiffré pour garder le texte brut confidentiel : Une méthode utilisée dans le processus de cryptage des données. Un algorithme d'opération. Utilisé pour convertir le texte brut en texte chiffré.

Clé : L'algorithme de cryptage crypte les données en texte brut en effectuant une certaine opération avec la clé pour générer des données cryptées,
Convertit les données cryptées en. données en texte brut.
La technologie de cryptage et l'algorithme de cryptage d'aujourd'hui sont publics, c'est-à-dire que tout le monde connaît la méthode de calcul utilisée pour le cryptage. Mais seule l'utilisation de la clé peut
crypter le texte chiffré. Par conséquent, la protection des clés est au cœur. de la sécurité des données.

3. Introduction à l'utilisation de l'outil openssl
1. Méthode de génération de clé privée

Pour générer une clé privée, vous pouvez utiliser différents algorithmes de signature numérique présentés ci-dessous ;

#Utiliser l'algorithme DSA
$ openssl dsaparam -noout -out dsakey0.pem -genkey 1024
#Utiliser l'algorithme RSA

$ openssl genrsa -out rsakey0 .pem 1024

#Utiliser l'algorithme RSA et utiliser la protection par mot de passe. Lors de la génération d'une clé privée, vous devez saisir un mot de passe pour protéger la clé privée.
#Lorsque vous utilisez cette clé privée pour des opérations de cryptage/déchiffrement, vous devez également saisir un mot de passe pour protéger la clé privée. Vous devez saisir ce mot de passe.
$ openssl genrsa -des3 -out rsakey1.pem 10242. Méthode de génération de clé publique
Générer la clé publique basée sur la clé privée
#Générer la clé publique de l'algorithme dsa
$ openssl dsa -in dsakey0.pem -pubout -out dsakey0-pub.pem
#Générer la clé publique de l'algorithme rsa
$ openssl rsa -in rsakey0.pem -pubout -out rsakey0-pub. pem3.Méthode de génération de certificat auto-signé
#Générer un certificat d'algorithme DSA
$ openssl req -x509 -key dsakey0.pem -days 365 -out mycert-dsa.pem -new
#Générer un certificat d'algorithme RSA
$ openssl req -x509 -key rsakey0.pem -days 365 -out mycert-rsa.pem -new

4. Utiliser un certificat pour le cryptage des e-mails
Contenu de notre message en texte brut :

$ cat test.txt
111111
222222

333333

444444
aaaaaa
Utilisez le certificat pour crypter la lettre en texte brut et envoyez-la dans le fichier etest.txt :
$ openssl smime -encrypt -in test.txt -out etest.txt mycert-rsa.pem Afficher le contenu du texte chiffré :

$ cat etest.txt
Version MIME : 1.0
Contenu -Disposition : pièce jointe ; filename="smime.p7m"

Content-Type : application/x-pkcs7-mime ; smime-type=enveloped-data ;

Content-Transfer-Encoding ; : base64

miibyayjkozihvcnaqcdoiibutcau0caqaxgewwgekcaqawujbfmqswcqydvqg
ewjbvtetmbega1Uecbmku29tzs1tdgf0ztehmb8ga1Uechmysw50zxjuzxwgv2 2l0cybqdhkg thrkagkar71mh4nrx / uwdqyjkozihvcnaqebbqaegycbra1wbwqk
zj7tcntxidzqmbc / lu063slkvbk6mqmqt N0AHRT 1UG DC6JKNPL RDYBCDDCYPH BMYJQRUP0HE / GQ5WSJ

SV8CDKoudvy5xg440yial3z3ysi = Utilisez la clé privée pour décrypter et sortir au fichier dtest.txt :


$ openssl smime -decrypt -in etest.txt -inkey rsakey0.pem -out dtest.txt Afficher le contenu de la lettre déchiffrée et la lettre originale en texte brut. Le contenu est exactement le même.

$ cat dtest.txt
111111
222222
333333
444444

aaaaaa

5. Cryptage simple des fichiers

Contenu du fichier en texte brut :

$ cat test.txt
1
22
333
4444
55555
Bonjour fichier texte brut crypté, la sortie est un fichier test.enc, entrez " 123123" comme mot de passe de cryptage :

$ openssl enc -aes-256-cbc -salt -in test.txt -out test.enc
entrez le mot de passe de cryptage aes-256-cbc :
Vérification - entrez le mot de passe de cryptage aes-256-cbc : Décryptez le texte chiffré, entrez "123123" comme mot de passe de décryptage :

$ openssl enc -d -aes-256-cbc -in test.enc
entrez aes -256-cbc mot de passe de décryptage :
1

22

333
4444
55555

Bonjour


6. Cryptage de chaîne simple
adopter Chiffrer en base64 :

$ echo "encode me" | openssl enc -base64
ZW5jb2RlIG1lCg== Lors du décryptage, vous devez connaître l'algorithme de cryptage avant de pouvoir décrypter :

$ echo "ZW5jb2RlIG1lCg == " | openssl enc -base64 -d
encodez-moi

7. Test du client et du serveur SSL

Démarrez le serveur SSL en utilisant la clé privée et le certificat. La fonction de "-www" est, Lorsque le client se connecte au serveur, une page Web d'informations sur l'état est envoyée au client


openssl s_server -key mykey.pem -cert mycert.pem -www se connecte au serveur SSL et le client obtiendra. le certificat du serveur :

openssl s_client -connect localhost:4433

Pour plus d'articles sur l'analyse du rôle de php php_openssl.dll, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Comment activer openssl en phpArticle suivant:Comment activer openssl en php