Detaillierte Einführung in PHP mit der OpenSSL-Erweiterung zur Implementierung der Public-Key-Verschlüsselung

黄舟
Freigeben: 2023-03-06 16:20:02
Original
1174 Leute haben es durchsucht

Verwenden Sie den Befehl openssl, um öffentliche und private Schlüssel zu generieren

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


Hier ist der Beispielcode:

<?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/>&#39;;


// ------------------------------------------------------------


// 私钥解密
$encrypt_data = base64_decode($encrypt_data);
openssl_private_decrypt($encrypt_data, $decrypt_data, $prikey);
var_dump($decrypt_data);
Nach dem Login kopieren



Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in PHP mit der OpenSSL-Erweiterung zur Implementierung der Public-Key-Verschlüsselung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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 Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!