$config = array(
//"config" =>"D:/phpserver/Lighttpd/openssl.cnf",
//'config' => 'D:/phpStudy/Lighttpd/OpenSSL.cnf',
'private_key_bits' => 1024, // Größe des Schlüssels.
'private_key_type' => OPENSSL_KEYTYPE_RSA
);
//$res = openssl_pkey_new();
$res = openssl_pkey_new($config);
// Privaten Schlüssel abrufen
// openssl_pkey_export($res, $privkey, "Passphrase Nummer 1 " );
openssl_pkey_export($res, $privkey);
var_dump($privkey);
// Öffentlichen Schlüssel abrufen
$pubkey=openssl_pkey_get_details($res);
// echo "------------>
";
// print_r($pubkey["rsa"]);
// $bin_str=$pubkey["rsa"]["n"];
// print_r($bin_str);
// echo "
";
// //echo $bin_hex_str = pack("H*" , bin2hex($bin_str));
// echo $bin_hex_str = bin2hex($bin_str);
// echo "
----- -------<
";
$pubkey=$pubkey["key"];
// var_dump($privkey);
// var_dump($pubkey);
echo $privkey."
";
echo $pubkey."
";
?>
$private_key = '-----BEGIN RSA Private KEY-----
MIICXQIBAAKBgQDNSQ4AmPZE01MpEO9dabRDsS0XwxKekEFUoWJneFG+NA6P52Js
ISw79QYNfQwM7akIaPpzU0 +kkwjtsxidqfuv5y2vaa3w2Tre5N51ucwuk6/lfzhx
bg0d+bnlzy6kb6bpgpgvbhaknbvjbcs0v9h4v3wutlr9Qauj05q8q8q8q8q8q8qe70Sqe70SQIDAMSQES70SQESQES70SQESQEM n353qy51ynytxffhbyisikvsyqtusuyffbjh7
ezyz8uws1jxuqb847iuz/ejzzpvev480Tv9yejn0dhj4yw6y/kpjwo/9KECET6TK
vatxh+wgmiesaCuS00TK
vatxh+wgmiesacxh Wqj6p4vjx+qktanecqqduo7enw10dzxlg
ynkquhgkdi9npjrlhcgz4rw0uorqusggqnvkaqpy8bajokkxwiq0avtpbi8. ulxvk0+
S50RGNNYNACHG0WO8RC0+
S50RGNNYNANAWOWRC65RC0TRC0WO/🎜> S50RGNYNANAWOWRC65RC65RC65RC65RC65RC65RC65RC65RC65RC65RC65RC65RC65RC65T. yle2gy0xsvwa97Svnvyjjj58ingevys
vez3grtnazpbpkcrucs6nidk761ot5a0nqjaosro1py4qqp5lsbdojrlq7djakef
6YJckbrvSHliIHjQVdKd8kOePZaqRhL3auvE3K9Ptkez2kWJJh0i0DkmhQJBAMCm
F+7wnWA0PEbj0MvqFyiechb/TJWXm/lskbnP17tv6GY/HWoxGWmLa15dlIo2cmJZ
DBIHby 8y+NU7k4VaDZECQQCO018O5TJWl+O+bWyzV1eR603YP+JVjiSKUPtuyzVS
NIz+ClwspGmdUwPWlLqr5JfKm+OfpaLIepfJinsCgwpP
//$private_key ='-----BEGIN RSA PRIVATE +cSsPewjjyatRCtq/Ri6c/ am64CJu+HM1lZH1Gh05C2KVJ2dveX
//gcdsz+/XPHDxYKAq/hW9S1NeYr2x4eJdpYNYucLn8XWgeLRnlJUnBl/saQIDAQAB
//AoGAK2oz28hKKB+DorNT2zktv2de85JhPr1EA+Zu J+1m2xHJKzlqJiYBB6M53ltS
//J446YZOPE/kXHgpwWIJlq9Wp1KiZPEfoRWzz1wmuj8. koq95vcxBeuyjX4ez4Dio6
//Vmr9BABFuoAh0GAq8kTJOz0DURCEcwv+iI7ILaNoRjPF WuUCQQDveqRLE2/N8NIy
// P7YVnniAiaSL/e+XYQXCMIDsdEdqZNRjhjfDoBqpV/tGjnuAn9zBVHNNLbLni5nf
//2nqgrh5jAkEA48gQmBO9koOnvO//Q581JSBKfga4i7DetQ80OD4kYt6fwezkaeHX
//k64s jmpfD/Ys2heKFhyNDO/k0NsUxGlNwwJBAKPx7/u9qLLyBNSFrWALhy9oC5AT
//Hi0iLNEOZ5R43lNGB+jCf/aa6uW357wb2wzpZDWuXOkfOfUuKv+HEKBj00UCQCxd
// woWsiqcoB5rwcBrevr49fOTxMC7dQ3Omw3gU+odbb2iZWKAbAh9ctIcExwFX5MKS
//BS5rXzne3AWmNnRPQnsCQDdOCBxkF5YctHqlmEETfKodVZG69COZGykdlenOxK6g
//qNNAT2y2mxInYGlPIJ+TfxxFIqesHdph4s/lw6T2ISY=
//-----END RSA PRIVATE KEY--- --';
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNSQ4AmPZE01MpEO9dabRDsS0X
wxKekEFUoWJneFG+NA6P52JsISw79QYNfQwM7akIaPpzU0+kkWjTSXi ' ;
//$private_key=$privkey;
//$public_key=$pubkey;
fwrite ($fp,$private_key);
fclose($fp);
$fp=fopen("public_key","w");
fwrite($fp,$public_key);
fclose($fp);
//echo $private_key;
$pi_key = openssl_pkey_get_private($private_key);//用返回资源id Ressourcen-ID
$pu_key = openssl_pkey_get_public($public_key);//这个函数可用来判断公钥是否是可用的
print_r($pu_key); echo „n“;
echo „
----------------------
“;
$data = "woshizhu";//原始数据
$encrypted = "";
$decrypted = "";
echo "source data:",$data,"
";
echo "private key encrypt:n";
openssl_private_encrypt($data,$encrypted,$pi_key);//Verschlüsselung mit privatem Schlüssel
$encrypted = base64_encode($encrypted);//Der verschlüsselte Inhalt enthält normalerweise Sonderzeichen und erfordert für die Verwendung eine Kodierungskonvertierung Netzwerk Achten Sie bei der Übertragung über eine URL darauf, ob die Base64-Kodierung URL-sicher ist
echo "
----------Verschlüsselung mit privatem Schlüssel--------- ---
";
echo $encrypted,"
";
echo "
----------Privater Schlüssel Verschlüsselung-- ----------
";
echo "public key decrypt:n";
$decrypted="";
openssl_public_decrypt(base64_decode($ verschlüsselt), $decrypted,$pu_key);//Der mit dem privaten Schlüssel verschlüsselte Inhalt kann mit dem öffentlichen Schlüssel entschlüsselt werden
echo $decrypted,"n";
echo "----- ------ --------------n";
echo "public key encrypt:n";
openssl_public_encrypt ($data,$encrypted,$pu_key);//Public-Key-Verschlüsselung
$encrypted = base64_encode($encrypted);
echo $encrypted,"n";
$decrypted="" ;
//$encrypted="JBeapcp9iWWYJYElgqtrZxfxM4wVkCaSn/oJZ7NjfR23o76fdbxEXpf+PGWACw3PeTdObwL4108wR3ihKmy2iYkIExGjBYyvx2w9aHies8ZsOIP3LjiMHYTm 93Rr8 Sc5XxHWQc3Dhbq16JWHYZ2d+RrOpHd4x84GF3JXwivrGO4=";
echo "private key decrypt:n";
openssl_private_decrypt(base64_decode($encrypted), $decrypted,$pi_key); //Entschlüsselung des privaten Schlüssels
echo "--->:".$decrypted,"n";
?>
Das Obige stellt die PHP-OpenSSL-RSA-Verschlüsselung und -Entschlüsselung vor, einschließlich einiger Aspekte des Inhalts. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.