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/>";


?>

 

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