php rsa加解密

不多BB;看代碼

針對windows系統如何解決openssl_pkey_export(): cannot get key from parameter 1這個問題

https://www.cnblogs.com/wadhf/p/12041267.html

<?php


$config = array(
    "digest_alg"    => "sha512",
    "private_key_bits" => 4096,           //字節數  512 1024 2048  4096 等 ,不能加引號,此處長度與加密的字符串長度有關係,可以自己測試一下
    "private_key_type" => OPENSSL_KEYTYPE_RSA,   //加密類型
  );
//創建資源
$res =    openssl_pkey_new($config);

//提取私鑰
openssl_pkey_export($res, $private_key);

//生成公鑰
$public_key = openssl_pkey_get_details($res);
// var_dump($public_key);

$public_key=$public_key["key"];

//顯示數據
var_dump($private_key);    //私鑰
echo "<br/>";
var_dump($public_key);     //公鑰
echo "<br/>";
//要加密的數據
$data = "http://www.cnblogs.com/wt645631686/";
echo '加密的數據:'.$data."\r\n";
echo "<br/>";
//私鑰加密後的數據
openssl_private_encrypt($data,$encrypted,$private_key);

//加密後的內容通常含有特殊字符,需要base64編碼轉換下
$encrypted = base64_encode($encrypted);
echo "私鑰加密後的數據:".$encrypted."\r\n";
echo "<br/>";
//公鑰解密
openssl_public_decrypt(base64_decode($encrypted), $decrypted, $public_key);
echo "公鑰解密後的數據:".$decrypted,"\r\n";
  echo "<br/>";
//----相反操作。公鑰加密
openssl_public_encrypt($data, $encrypted, $public_key);
$encrypted = base64_encode($encrypted);
echo "公鑰加密後的數據:".$encrypted."\r\n";
echo "<br/>";
openssl_private_decrypt(base64_decode($encrypted), $decrypted, $private_key);//私鑰解密
echo "私鑰解密後的數據:".$decrypted."n";

echo "<br/>";

echo "---------------------------------------分割線---------------------------------------";

echo "<br/>";


?>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章