亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP封裝的非對稱加密RSA算法示例

2024-05-05 00:03:57
字體:
來源:轉載
供稿:網友

本文實例講述了PHP封裝的非對稱加密RSA算法。分享給大家供大家參考,具體如下:

將php的openssl擴展中的非對稱加密函數封裝成一個Rsa類。

需要注意的是,在windows上,需要打開openssl的配置文件,請參照官方的openssl擴展安裝文檔。

在windows上安裝openssl擴展

1、將php路徑下的兩個庫文件libeay32.dll和ssleay32.dll復制到操作system32下

2、配置openssl配置文件的位置,在php的路徑下,有文件extras/openssl/openssl.cnf,添加環境變量OPENSSL_CONF指向這個文件的全路徑。如何添加環境變量請google搜索之。

3、在php.ini里添加一行extension=php_openssl.dll

使用的demo:

//====================demo=======================//以下是一個簡單的測試demo,如果不需要請刪除$rsa = new Rsa('sslkey'); //sslkey為存放密鑰的路徑,將已有的密鑰文件復制到該路徑下,公鑰名稱為pub.key,私鑰名稱為priv.key$rsa->createKey(); //創建一對密鑰,如果密鑰對已經存在,不需調用//私鑰加密,公鑰解密echo 'source:VeVb武林網<br />';$pre = $rsa->privEncrypt('VeVb武林網');echo 'private encrypted:<br />' . $pre . '<br />';$pud = $rsa->pubDecrypt($pre);echo 'public decrypted:' . $pud . '<br />';//公鑰加密,私鑰解密echo 'source:干IT的<br />';$pue = $rsa->pubEncrypt('干IT的');echo 'public encrypt:<br />' . $pue . '<br />';$prd = $rsa->privDecrypt($pue);echo 'private decrypt:' . $prd;//========================demo======================

本示例在windows7、php 5.2.14、openssl 0.98下開發

<?php/** * 使用openssl實現非對稱加密 * */class Rsa{  /**   * private key   */    private $_privKey;    /**     * public key     */    private $_pubKey;    /**     * the keys saving path     */    private $_keyPath;    /**     * the construtor,the param $path is the keys saving path     */    public function __construct($path)    {        if(empty($path) || !is_dir($path)){            throw new Exception('Must set the keys save path');        }        $this->_keyPath = $path;    }    /**     * create the key pair,save the key to $this->_keyPath     */    public function createKey()    {        $r = openssl_pkey_new();        openssl_pkey_export($r, $privKey);        file_put_contents($this->_keyPath . DIRECTORY_SEPARATOR . 'priv.key', $privKey);        $this->_privKey = openssl_pkey_get_private($privKey);        $rp = openssl_pkey_get_details($r);        $pubKey = $rp['key'];        file_put_contents($this->_keyPath . DIRECTORY_SEPARATOR . 'pub.key', $pubKey);        $this->_pubKey = openssl_pkey_get_public($pubKey);    }    /**     * setup the private key     */    public function setupPrivKey()    {        if(is_resource($this->_privKey)){            return true;        }        $file = $this->_keyPath . DIRECTORY_SEPARATOR . 'priv.key';        $prk = file_get_contents($file);        $this->_privKey = openssl_pkey_get_private($prk);        return true;    }    /**     * setup the public key     */    public function setupPubKey()    {        if(is_resource($this->_pubKey)){            return true;        }        $file = $this->_keyPath . DIRECTORY_SEPARATOR . 'pub.key';        $puk = file_get_contents($file);        $this->_pubKey = openssl_pkey_get_public($puk);        return true;    }    /**     * encrypt with the private key     */    public function privEncrypt($data)    {        if(!is_string($data)){            return null;        }        $this->setupPrivKey();        $r = openssl_private_encrypt($data, $encrypted, $this->_privKey);        if($r){            return base64_encode($encrypted);        }        return null;    }    /**     * decrypt with the private key     */    public function privDecrypt($encrypted)    {        if(!is_string($encrypted)){            return null;        }        $this->setupPrivKey();        $encrypted = base64_decode($encrypted);        $r = openssl_private_decrypt($encrypted, $decrypted, $this->_privKey);        if($r){            return $decrypted;        }        return null;    }    /**     * encrypt with public key     */    public function pubEncrypt($data)    {        if(!is_string($data)){            return null;        }        $this->setupPubKey();        $r = openssl_public_encrypt($data, $encrypted, $this->_pubKey);        if($r){            return base64_encode($encrypted);        }        return null;    }    /**     * decrypt with the public key     */    public function pubDecrypt($crypted)    {        if(!is_string($crypted)){            return null;        }        $this->setupPubKey();        $crypted = base64_decode($crypted);        $r = openssl_public_decrypt($crypted, $decrypted, $this->_pubKey);        if($r){            return $decrypted;        }        return null;    }    public function __destruct()    {        @ fclose($this->_privKey);        @ fclose($this->_pubKey);    }}

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲天堂成人在线视频| 日本欧美国产在线| 国产成人jvid在线播放| 日韩最新中文字幕电影免费看| 国产精品久久久久久久久男| 夜夜躁日日躁狠狠久久88av| 国产精品电影网站| 国产经典一区二区| 欧美理论电影在线观看| 精品久久中文字幕久久av| 亚洲国产精品一区二区久| 日本亚洲欧美成人| 亚洲成人网av| 欧美精品在线观看91| 日韩精品视频免费在线观看| 国产成人综合精品| 亚洲片在线资源| 狠狠色噜噜狠狠狠狠97| www.美女亚洲精品| 国产一区二区三区在线播放免费观看| 国产成人精品网站| 91香蕉亚洲精品| 欧美精品在线免费| 国产精国产精品| 精品爽片免费看久久| 久久久久久久影视| 国产精品久久久久久久久影视| 色青青草原桃花久久综合| 美日韩丰满少妇在线观看| 久久精品国产亚洲精品| 91亚洲国产成人精品性色| 97人人爽人人喊人人模波多| 久久精品国产欧美亚洲人人爽| 亚洲国产精品专区久久| 欧美精品在线免费| 在线播放日韩精品| 亚洲福利精品在线| 国产精品天天狠天天看| 少妇av一区二区三区| 欧美性猛交xxxx黑人| 欧美黑人巨大xxx极品| 国产精品视频在线播放| 91国产美女视频| 亚洲男女自偷自拍图片另类| 免费av一区二区| 欧美日韩精品在线视频| 日韩资源在线观看| 日韩av一区在线| 91久久嫩草影院一区二区| 亚洲男人的天堂网站| 亚洲欧美国产日韩中文字幕| 国产aⅴ夜夜欢一区二区三区| 日本中文字幕不卡免费| 欧美日韩另类视频| 亚洲香蕉av在线一区二区三区| 97视频在线观看网址| 亚洲视频在线观看| 91久久久久久久久久久| 日韩有码在线电影| 亚洲成人精品av| 一本色道久久88亚洲综合88| 欧美老妇交乱视频| 亚洲精品自产拍| 日本成人在线视频网址| 亚洲黄色av女优在线观看| 福利一区福利二区微拍刺激| 亚洲美女视频网| 国产一区二区在线免费| 国产精品一区二区久久国产| 不卡av在线播放| 日本精品视频在线播放| 国产一区二区三区网站| 亚洲在线免费观看| 亚洲国产精品网站| 高清欧美电影在线| 一夜七次郎国产精品亚洲| 亚洲亚裔videos黑人hd| 国产一区二区三区免费视频| 深夜福利亚洲导航| 日本伊人精品一区二区三区介绍| 国产精品高清免费在线观看| 欧美中文字幕视频| 亚洲一区二区三区在线免费观看| 国产精品成人一区| 高清日韩电视剧大全免费播放在线观看| 国外日韩电影在线观看| 国产精品免费网站| 精品久久久国产| 亚洲最新av网址| 国产一区二区视频在线观看| 国产亚洲精品久久久| 亚洲精品丝袜日韩| 麻豆一区二区在线观看| 久久精品免费播放| 亚洲欧美国产精品久久久久久久| 亚洲人午夜精品免费| www.日本久久久久com.| 午夜精品久久久久久99热| 成人妇女淫片aaaa视频| 成人免费视频在线观看超级碰| 欧美色道久久88综合亚洲精品| 亚洲少妇中文在线| 精品亚洲一区二区三区在线观看| 亚洲国产精品成人av| 亚洲黄色av女优在线观看| 成人乱人伦精品视频在线观看| 国产精品欧美激情| 日韩av中文字幕在线免费观看| 亚洲精品www久久久久久广东| 国产女精品视频网站免费| 亚洲电影免费观看高清完整版在线| 热re99久久精品国产66热| 亚洲精品xxx| 国产精品高潮视频| 成人在线一区二区| 欧美午夜精品伦理| 久久久久久亚洲精品中文字幕| 国产精品成av人在线视午夜片| 精品久久久香蕉免费精品视频| 亚洲风情亚aⅴ在线发布| 日韩精品免费综合视频在线播放| 色婷婷亚洲mv天堂mv在影片| 亚洲色图狂野欧美| 97精品国产97久久久久久春色| 国产91精品久久久久久久| 国内精品久久久久影院 日本资源| 日本道色综合久久影院| 亚洲一区制服诱惑| 高清一区二区三区日本久| 国产69精品久久久久99| 蜜臀久久99精品久久久久久宅男| 午夜精品99久久免费| 国产美女高潮久久白浆| 伊人久久男人天堂| 欧美在线观看网址综合| 久久久久久免费精品| 九九热99久久久国产盗摄| 欧美在线性爱视频| 992tv成人免费视频| 欧美成人全部免费| 亚洲www在线观看| 色哟哟入口国产精品| 精品人伦一区二区三区蜜桃网站| 国产精品亚洲一区二区三区| 亚洲第一精品电影| 国产精品大陆在线观看| 97人人爽人人喊人人模波多| 日韩在线观看免费全集电视剧网站| 欧美色videos| 日韩精品福利网站| 欧美激情乱人伦一区| 国产美女被下药99| 97精品视频在线播放| 全色精品综合影院| 中文字幕日韩在线观看| 久热99视频在线观看| 97精品一区二区视频在线观看| 不卡在线观看电视剧完整版| 狠狠做深爱婷婷久久综合一区| 91丨九色丨国产在线| 欧美激情成人在线视频| 亚洲偷欧美偷国内偷| 欧美一级免费视频| 国产精品中文字幕久久久|