Heim  >  Artikel  >  Backend-Entwicklung  >  Die OpenSSL-Erweiterung implementiert die Verschlüsselungsfunktion mit öffentlichem Schlüssel

Die OpenSSL-Erweiterung implementiert die Verschlüsselungsfunktion mit öffentlichem Schlüssel

php中世界最好的语言
php中世界最好的语言Original
2018-03-24 13:31:122003Durchsuche

Dieses Mal werde ich Ihnen die OpenSSL-Erweiterung zum Implementieren der Public-Key-Verschlüsselungsfunktion vorstellen. Was sind die Vorsichtsmaßnahmen für die OpenSL-Erweiterung zum Implementieren der Public-Key-Verschlüsselungsfunktion? Schauen Sie mal rein.

sieht so aus:

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

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/>';
// ------------------------------------------------------------
// 私钥解密
$encrypt_data = base64_decode($encrypt_data);
openssl_private_decrypt($encrypt_data, $decrypt_data, $prikey);
var_dump($decrypt_data);

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

phpStudy2018-Installations-Tutorial

ThinkPHP-Implementierung des WeChat-Zahlungsprozesses (jsapi payment) Tutorial mit detaillierter Erklärung_php-Beispiel

Das obige ist der detaillierte Inhalt vonDie OpenSSL-Erweiterung implementiert die Verschlüsselungsfunktion mit öffentlichem Schlüssel. 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