Maison  >  Article  >  développement back-end  >  L'extension openssl implémente la fonction de cryptage à clé publique

L'extension openssl implémente la fonction de cryptage à clé publique

php中世界最好的语言
php中世界最好的语言original
2018-03-24 13:31:121968parcourir

Cette fois, je vais vous apporter l'extension openssl pour implémenter la fonction de cryptage à clé publique. Quelles sont les précautions pour que l'extension openssl implémente la fonction de cryptage à clé publique. jetez un oeil.

ressemble à ceci :

// 生成私钥
# openssl genrsa -out rsa_private_key.pem 1024
// 生成公钥
# openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

Voici l'exemple de code :

<?php
// openssl 扩展检测
var_dump(extension_loaded(&#39;openssl&#39;));
$prikey = openssl_pkey_get_private(file_get_contents(&#39;rsa_private_key.pem&#39;)); //私钥
$pubkey = openssl_pkey_get_public(file_get_contents(&#39;rsa_public_key.pem&#39;)); //公钥
// 明文数据
$data = &#39;test-string!&#39;;
/**
 * 可能会出的问题:Don&#39;t know how to get public key from this private key
 * 原因:PHP 的 openssl 扩展和 Apache 的不一致导致, 当然在命令行下运行程序则不会出现此问题
 */
// 公钥加密
$encrypt_data = &#39;&#39;;
openssl_public_encrypt($data, $encrypt_data, $pubkey);
$encrypt_data = base64_encode($encrypt_data);
echo $encrypt_data;
echo &#39;<br/>';
// ------------------------------------------------------------
// 私钥解密
$encrypt_data = base64_decode($encrypt_data);
openssl_private_decrypt($encrypt_data, $decrypt_data, $prikey);
var_dump($decrypt_data);

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Tutoriel d'installation de phpStudy2018

Tutoriel d'implémentation ThinkPHP du processus de paiement WeChat (paiement jsapi) explication détaillée_php Exemple

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en 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