最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php 生成加密公鑰加密私鑰實(shí)例詳解

 更新時(shí)間:2017年06月16日 11:02:00   投稿:lqh  
這篇文章主要介紹了php 生成加密公鑰加密私鑰實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下

php 生成加密公鑰加密私鑰實(shí)例詳解

生成公鑰私鑰     win下必須要openssl.cof支持   liunx一般已自帶安裝 

$config = array( 
  //"digest_alg" => "sha512", 
  "private_key_bits" => 512,           //字節(jié)數(shù)  512 1024 2048  4096 等 
  "private_key_type" => OPENSSL_KEYTYPE_RSA,   //加密類型 
); 
   
//1.創(chuàng)建公鑰和私鑰  返回資源 
$res = openssl_pkey_new($config); 
 
//從得到的資源中獲取私鑰  并把私鑰賦給$privKey
openssl_pkey_export($res, $privKey); 
 
//從得到的資源中獲取私鑰  并把私鑰賦給$pubKey
$pubKey = openssl_pkey_get_details($res); 
 
$pubKey = $pubKey["key"]; 
var_dump(array('privKey'=>$privKey,'pubKey'=>$pubKey)); 
die; 

//2.加密解密數(shù)據(jù) 要加密的數(shù)據(jù) 
$data = 'plaintext data goes here';             

//對(duì)$data進(jìn)行加密 要加密的數(shù)據(jù)字符串 得到加密后的數(shù)據(jù) 加密所需要的公鑰
openssl_public_encrypt($data, $encrypted, $pubKey); 
echo base64_encode($encrypted); 
 
//對(duì)加密后的數(shù)據(jù)進(jìn)行解密 解密的數(shù)據(jù) 得到解密后的數(shù)據(jù) 解密所需要的私鑰
$decrypted = base64_decode($encrypted);
openssl_private_decrypt($encrypted, $decrypted, $privKey); 
echo $decrypted;  

//3.一個(gè)加密解密類 
class rsa { 
  private $public_key = ''; //公密鑰 
  private $private_key = ''; //私密鑰 
  private $public_key_resource = ''; //公密鑰資源 
  private $private_key_resource = ''; //私密鑰資源 
  /** 
   * 架構(gòu)函數(shù) 
   * @param [string] $public_key_file [公密鑰文件地址] 
   * @param [string] $private_key_file [私密鑰文件地址] 
   */ 
  public function __construct($public_key,$private_key) { 
    $this->public_key = $public_key;   
 $this->private_key = $private_key;
 
 if(false == ($this->public_key_resource = $this->is_bad_public_key($this->public_key)) || false == ($this->private_key_resource = $this->is_bad_private_key($this->private_key))) { 
  throw new Exception('public key or private key no usable'); 
 } 
  } 
  private function is_bad_public_key($public_key) { 
    return openssl_pkey_get_public($public_key); 
  } 
  private function is_bad_private_key($private_key) { 
    return openssl_pkey_get_private($private_key); 
  } 
  /** 
   * 生成一對(duì)公私密鑰 成功返回 公私密鑰數(shù)組 失敗 返回 false 
   */ 
  public function create_key() { 
    $res = openssl_pkey_new(); 
    if($res == false) return false; 
    openssl_pkey_export($res, $private_key); 
    $public_key = openssl_pkey_get_details($res); 
    return array('public_key'=>$public_key["key"],'private_key'=>$private_key); 
  } 
  /** 
   * 用私密鑰加密 
   */ 
  public function private_encrypt($input) { 
    openssl_private_encrypt($input,$output,$this->private_key_resource); 
    return base64_encode($output); 
  } 
  /** 
   * 解密 私密鑰加密后的密文 
   */ 
  public function public_decrypt($input) { 
    openssl_public_decrypt(base64_decode($input),$output,$this->public_key_resource); 
    return $output; 
  } 
  /** 
   * 用公密鑰加密 
   */ 
  public function public_encrypt($input) { 
    openssl_public_encrypt($input,$output,$this->public_key_resource); 
    return base64_encode($output); 
  } 
  /** 
   * 解密 公密鑰加密后的密文 
   */ 
  public function private_decrypt($input) { 
    openssl_private_decrypt(base64_decode($input),$output,$this->private_key_resource); 
    return $output; 
  } 
} 

$private_key = '-----BEGIN RSA PRIVATE KEY----- 
MIICXQIBAAKBgQC3//sR2tXw0wrC2DySx8vNGlqt3Y7ldU9+LBLI6e1KS5lfc5jl 
TGF7KBTSkCHBM3ouEHWqp1ZJ85iJe59aF5gIB2klBd6h4wrbbHA2XE1sq21ykja/ 
Gqx7/IRia3zQfxGv/qEkyGOx+XALVoOlZqDwh76o2n1vP1D+tD3amHsK7QIDAQAB 
AoGBAKH14bMitESqD4PYwODWmy7rrrvyFPEnJJTECLjvKB7IkrVxVDkp1XiJnGKH 
2h5syHQ5qslPSGYJ1M/XkDnGINwaLVHVD3BoKKgKg1bZn7ao5pXT+herqxaVwWs6 
ga63yVSIC8jcODxiuvxJnUMQRLaqoF6aUb/2VWc2T5MDmxLhAkEA3pwGpvXgLiWL 
3h7QLYZLrLrbFRuRN4CYl4UYaAKokkAvZly04Glle8ycgOc2DzL4eiL4l/+x/gaq 
deJU/cHLRQJBANOZY0mEoVkwhU4bScSdnfM6usQowYBEwHYYh/OTv1a3SqcCE1f+ 
qbAclCqeNiHajCcDmgYJ53LfIgyv0wCS54kCQAXaPkaHclRkQlAdqUV5IWYyJ25f 
oiq+Y8SgCCs73qixrU1YpJy9yKA/meG9smsl4Oh9IOIGI+zUygh9YdSmEq0CQQC2 
4G3IP2G3lNDRdZIm5NZ7PfnmyRabxk/UgVUWdk47IwTZHFkdhxKfC8QepUhBsAHL 
QjifGXY4eJKUBm3FpDGJAkAFwUxYssiJjvrHwnHFbg0rFkvvY63OSmnRxiL4X6EY 
yI9lblCsyfpl25l7l5zmJrAHn45zAiOoBrWqpM5edu7c 
-----END RSA PRIVATE KEY-----';

$public_key = '-----BEGIN PUBLIC KEY----- 
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3//sR2tXw0wrC2DySx8vNGlqt 
3Y7ldU9+LBLI6e1KS5lfc5jlTGF7KBTSkCHBM3ouEHWqp1ZJ85iJe59aF5gIB2kl 
Bd6h4wrbbHA2XE1sq21ykja/Gqx7/IRia3zQfxGv/qEkyGOx+XALVoOlZqDwh76o 
2n1vP1D+tD3amHsK7QIDAQAB 
-----END PUBLIC KEY-----';

$rsa = new rsa($public_key,$private_key);  
$str = '加密解密'; 
$str = $rsa->public_encrypt($str); //用公密鑰加密 
echo $str,'</br>'; 
$str = $rsa->private_decrypt($str); //用私密鑰解密 
echo $str,'</br>'; 
//============================================================= 
$str = $rsa->private_encrypt($str); //用私密鑰加密 
echo $str,'</br>'; 
$str = $rsa->public_decrypt($str); //用公密鑰解密 
echo $str,'</br>'; 

 感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • php實(shí)現(xiàn)微信公眾號(hào)創(chuàng)建自定義菜單功能的實(shí)例代碼

    php實(shí)現(xiàn)微信公眾號(hào)創(chuàng)建自定義菜單功能的實(shí)例代碼

    這篇文章主要介紹了php實(shí)現(xiàn)微信公眾號(hào)創(chuàng)建自定義菜單功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • PHP的openssl加密擴(kuò)展使用小結(jié)(推薦)

    PHP的openssl加密擴(kuò)展使用小結(jié)(推薦)

    下面小編就為大家?guī)硪黄狿HP的openssl加密擴(kuò)展使用小結(jié)(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07
  • php獲取訪問者瀏覽頁面的瀏覽器類型

    php獲取訪問者瀏覽頁面的瀏覽器類型

    最近做的項(xiàng)目需要根據(jù)用戶瀏覽器的類型而做一些不同的處理,于是稍微研究了一下使用php判斷瀏覽器類型的方法,下面這篇文章主要給大家介紹了php如何獲取訪問者瀏覽頁面的瀏覽器類型,需要的朋友可以參考借鑒,一起來看看吧。
    2017-01-01
  • thinkphp5.1框架容器與依賴注入實(shí)例分析

    thinkphp5.1框架容器與依賴注入實(shí)例分析

    這篇文章主要介紹了thinkphp5.1框架容器與依賴注入,結(jié)合實(shí)例形式分析了thinkPHP5.1容器與依賴注入相關(guān)原理與使用技巧,需要的朋友可以參考下
    2019-07-07
  • PHP簡(jiǎn)單留言本功能實(shí)現(xiàn)代碼

    PHP簡(jiǎn)單留言本功能實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了PHP簡(jiǎn)單留言本功能的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Laravel + Elasticsearch 實(shí)現(xiàn)中文搜索的方法

    Laravel + Elasticsearch 實(shí)現(xiàn)中文搜索的方法

    這篇文章主要介紹了Laravel + Elasticsearch 實(shí)現(xiàn)中文搜索的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • CI框架簡(jiǎn)單郵件發(fā)送類實(shí)例

    CI框架簡(jiǎn)單郵件發(fā)送類實(shí)例

    這篇文章主要介紹了CI框架簡(jiǎn)單郵件發(fā)送類,結(jié)合完整實(shí)例形式分析了郵件發(fā)送類的功能定義與具體使用方法,需要的朋友可以參考下
    2016-05-05
  • ThinkPHP使用Ueditor的方法詳解

    ThinkPHP使用Ueditor的方法詳解

    這篇文章主要介紹了ThinkPHP使用Ueditor的方法,詳細(xì)分析了thinkPHP框架整合Ueditor編輯器的具體步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-05-05
  • CI框架出現(xiàn)mysql數(shù)據(jù)庫連接資源無法釋放的解決方法

    CI框架出現(xiàn)mysql數(shù)據(jù)庫連接資源無法釋放的解決方法

    這篇文章主要介紹了CI框架出現(xiàn)mysql數(shù)據(jù)庫連接資源無法釋放的解決方法,分析了CI框架出現(xiàn)連接超過最大值的原因與相應(yīng)的解決方法,涉及CI框架相關(guān)配置技巧,需要的朋友可以參考下
    2016-05-05
  • PHP設(shè)計(jì)模式之策略模式(Strategy)入門與應(yīng)用案例詳解

    PHP設(shè)計(jì)模式之策略模式(Strategy)入門與應(yīng)用案例詳解

    這篇文章主要介紹了PHP設(shè)計(jì)模式之策略模式(Strategy)入門與應(yīng)用,結(jié)合具體實(shí)例形式詳細(xì)分析了PHP策略模式的相關(guān)概念、原理、使用方法及操作注意事項(xiàng),需要的朋友可以參考下
    2019-12-12

最新評(píng)論

永顺县| 南丹县| 白银市| 广平县| 横山县| 大同县| 石首市| 西畴县| 康保县| 柏乡县| 高清| 赣州市| 英德市| 砚山县| 德阳市| 酒泉市| 丽江市| 茌平县| 克山县| 图片| 沾益县| 冕宁县| 宣城市| 高邮市| 北川| 楚雄市| 蒙阴县| 平阳县| 墨竹工卡县| 和硕县| 永城市| 青冈县| 临汾市| 台山市| 民丰县| 岳西县| 凤庆县| 宣化县| 岳西县| 岑溪市| 白沙|