婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解PHP使用非對稱加密算法RSA

詳解PHP使用非對稱加密算法RSA

熱門標簽:安裝電銷外呼系統 福州人工外呼系統哪家強 注冊400電話申請 地圖標注平臺怎么給錢注冊 釘釘打卡地圖標注 百度商鋪地圖標注 衡水外呼系統平臺 常州地圖標注服務商 新河科技智能外呼系統怎么樣

加密的類型

在日常設計及開發中,為確保數據傳輸和數據存儲的安全,可通過特定的算法,將數據明文加密成復雜的密文。目前主流加密手段大致可分為單向加密和雙向加密。

單向加密:通過對數據進行摘要計算生成密文,密文不可逆推還原。算法代表:Base64,MD5,SHA;

雙向加密:與單向加密相反,可以把密文逆推還原成明文,雙向加密又分為對稱加密和非對稱加密。

對稱加密:指數據使用者必須擁有相同的密鑰才可以進行加密解密,就像彼此約定的一串暗號。算法代表:DES,3DES,AES,IDEA,RC4,RC5;

非對稱加密:相對對稱加密而言,無需擁有同一組密鑰,非對稱加密是一種“信息公開的密鑰交換協議”。非對稱加密需要公開密鑰和私有密鑰兩組密鑰,公開密鑰和私有密鑰是配對起來的,也就是說使用公開密鑰進行數據加密,只有對應的私有密鑰才能解密。這兩個密鑰是數學相關,用某用戶密鑰加密后的密文,只能使用該用戶的加密密鑰才能解密。如果知道了其中一個,并不能計算出另外一個。因此如果公開了一對密鑰中的一個,并不會危害到另外一個密鑰性質。這里把公開的密鑰為公鑰,不公開的密鑰為私鑰。算法代表:RSA,DSA。

以前一直對客戶端傳給服務器的信息加密這一塊一臉懵,如果app里面的用戶登錄信息被抓包拿到了,大寫著 username:root,password:123456,  那不是很尷尬。

偶然做版權輸入的時候遇到了rsa,在支付寶支付的時候也接觸過,當時不知道這是啥子,現在才知道。

他能保證,客戶端給出的信息,只有擁有私鑰的服務器才能看,其他人看的都是亂碼。

非對稱加密算法

需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那么只有用對應的公開密鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法。

注意以上的一個點,公鑰加密的數據,只有對應的私鑰才能解密

在日常使用中是醬紫的:將私鑰private_key.pem用在服務器端,公鑰發放給android跟ios等前端

客戶端用公鑰加密過后,數據只能被擁有唯一私鑰的服務器看懂。

具體實現

1、加密解密的第一步

生成公鑰、私鑰對,私鑰加密的內容能通過公鑰解密(反過來亦可以)

下載開源RSA密鑰生成工具openssl(通常Linux系統都自帶該程序),解壓縮至獨立的文件夾,進入其中的bin目錄,執行以下命令:

openssl genrsa -out rsa_private_key.pem 1024

openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out private_key.pem

openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

第一條命令生成原始 RSA私鑰文件 rsa_private_key.pem

第二條命令將原始 RSA私鑰轉換為 pkcs8格式

第三條生成RSA公鑰 rsa_public_key.pem

上面幾個就可以看出:通過私鑰能生成對應的公鑰

也有一些網站提供生成rsa公鑰私鑰的服務:http://www.bm8.com.cn/webtool/rsa/

2、PHP的加密解密類庫

?php
 
 
class Rsa {
 
    /**     
     * 獲取私鑰     
     * @return bool|resource     
     */    
    private static function getPrivateKey() 
    {        
        $abs_path = dirname(__FILE__) . '/rsa_private_key.pem';
        $content = file_get_contents($abs_path);    
        return openssl_pkey_get_private($content);    
    }    
 
    /**     
     * 獲取公鑰     
     * @return bool|resource     
     */    
    private static function getPublicKey()
    {   
        $abs_path = dirname(__FILE__) . '/rsa_public_key.pem';
        $content = file_get_contents($abs_path);    
        return openssl_pkey_get_public($content);     
    }
 
    /**     
     * 私鑰加密     
     * @param string $data     
     * @return null|string     
     */    
    public static function privEncrypt($data = '')    
    {        
        if (!is_string($data)) {            
            return null;       
        }        
        return openssl_private_encrypt($data,$encrypted,self::getPrivateKey()) ? base64_encode($encrypted) : null;    
    }    
 
    /**     
     * 公鑰加密     
     * @param string $data     
     * @return null|string     
     */    
    public static function publicEncrypt($data = '')   
    {        
        if (!is_string($data)) {            
            return null;        
        }        
        return openssl_public_encrypt($data,$encrypted,self::getPublicKey()) ? base64_encode($encrypted) : null;    
    }    
 
    /**     
     * 私鑰解密     
     * @param string $encrypted     
     * @return null     
     */    
    public static function privDecrypt($encrypted = '')    
    {        
        if (!is_string($encrypted)) {            
            return null;        
        }        
        return (openssl_private_decrypt(base64_decode($encrypted), $decrypted, self::getPrivateKey())) ? $decrypted : null;    
    }    
 
    /**     
     * 公鑰解密     
     * @param string $encrypted     
     * @return null     
     */    
    public static function publicDecrypt($encrypted = '')    
    {        
        if (!is_string($encrypted)) {            
            return null;        
        }        
    return (openssl_public_decrypt(base64_decode($encrypted), $decrypted, self::getPublicKey())) ? $decrypted : null;    
    }
}

調用demo

?php
require_once "Rsa.php";
$rsa = new Rsa();
$data['name'] = 'Tom';
$data['age']  = '20';
$privEncrypt = $rsa->privEncrypt(json_encode($data));
echo '私鑰加密后:'.$privEncrypt.'br>';
 
$publicDecrypt = $rsa->publicDecrypt($privEncrypt);
echo '公鑰解密后:'.$publicDecrypt.'br>';
 
$publicEncrypt = $rsa->publicEncrypt(json_encode($data));
echo '公鑰加密后:'.$publicEncrypt.'br>';
 
$privDecrypt = $rsa->privDecrypt($publicEncrypt);
echo '私鑰解密后:'.$privDecrypt.'br>';

代碼截圖實例:

以上就是PHP使用非對稱加密算法RSA的詳細內容,更多關于PHP使用RSA的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • 詳解各種PHP函數漏洞
  • 如何使用SublimeText3配置 PHP IDE環境
  • PHPStorm+Xdebug進行emote Debug時無法進入斷點問題排查
  • php中foreach遍歷類對象的總結
  • php-fpm報502問題的解決辦法
  • PHP實現創建以太坊錢包轉賬等功能
  • 如何使用php生成zip壓縮包
  • php常見的網絡攻擊及防御方法
  • PHP7下安裝并使用xhprof性能分析工具
  • PHP遠程調用以及RPC框架
  • PHP代碼加密和擴展解密實戰
  • 再談PHP未來之路

標簽:鶴崗 鷹潭 克拉瑪依 白城 唐山 六安 柳州 遼陽

巨人網絡通訊聲明:本文標題《詳解PHP使用非對稱加密算法RSA》,本文關鍵詞  詳解,PHP,使用,非對稱,加密,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解PHP使用非對稱加密算法RSA》相關的同類信息!
  • 本頁收集關于詳解PHP使用非對稱加密算法RSA的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久精品国产99久久6| 国产日韩欧美麻豆| 7777女厕盗摄久久久| 欧美日韩1区2区| 91精品国产免费| 欧美不卡一区二区三区四区| 久久亚区不卡日本| 最新高清无码专区| 午夜国产不卡在线观看视频| 日本女人一区二区三区| 国产露脸91国语对白| 日韩1区2区日韩1区2区| av在线不卡免费看| 久久久91精品国产一区二区精品 | 日韩精品一区二区在线| 久久精品亚洲精品国产欧美| 中文字幕亚洲在| 日韩国产一二三区| 成人国产一区二区三区精品| 欧美优质美女网站| 欧美国产日本视频| 天堂影院一区二区| 久久99国产精品尤物| 欧美电影免费观看高清完整版在线观看 | 亚洲国产一区二区视频| 国产精品白丝jk白祙喷水网站| 在线一区二区视频| 亚洲精品免费电影| 成人视屏免费看| 久久久精品影视| 一区二区高清在线| 国内精品伊人久久久久av影院| 国产成人高清视频| 亚洲精品视频一区| 不卡电影免费在线播放一区| 久久亚洲二区三区| www.一区二区| 亚洲电影一级片| 日韩一区二区电影| 国产精品一品二品| 国产亚洲福利社区一区| 看片的网站亚洲| 日韩欧美激情在线| 久久精品99国产国产精| 日韩视频一区二区在线观看| 亚洲午夜久久久久久久久电影院| 成人av在线电影| 亚洲男人的天堂在线aⅴ视频| www.99精品| 一区二区视频在线| 91精品中文字幕一区二区三区| 蜜臀久久久久久久| 国产色产综合色产在线视频| 色噜噜狠狠成人网p站| 日本一区中文字幕| 国产精品嫩草影院com| 色哟哟国产精品| 激情久久五月天| 欧美极品美女视频| 欧美日韩在线观看一区二区| 秋霞影院一区二区| 久久精品日韩一区二区三区| a级精品国产片在线观看| 一区二区免费在线播放| 欧美一级理论性理论a| 99久久精品免费看国产免费软件| 日韩av中文在线观看| 国产无人区一区二区三区| 不卡电影免费在线播放一区| 蜜乳av一区二区| 亚洲视频一区在线| 久久久99精品久久| 欧美一区二区三区在线看| 97久久精品人人澡人人爽| 国产精品一二二区| 麻豆精品视频在线观看视频| 国产精品网站在线| 26uuu精品一区二区| 欧美日韩国产美| 在线影院国内精品| 欧美午夜免费电影| www.色精品| 欧美性淫爽ww久久久久无| 激情综合网天天干| 国产精品久久看| 性感美女久久精品| 激情丁香综合五月| 最新中文字幕一区二区三区| 91亚洲精品久久久蜜桃网站| 欧美一区二区大片| 亚洲天堂免费在线观看视频| 日韩 欧美一区二区三区| 成人晚上爱看视频| 久久综合色8888| 日本一二三不卡| 亚洲一区二区在线观看视频| 天天亚洲美女在线视频| 久久99久久久久久久久久久| 国精产品一区一区三区mba桃花| 91麻豆蜜桃一区二区三区| 成人app网站| 欧美视频三区在线播放| 9191成人精品久久| 国产欧美日韩另类视频免费观看| 国产精品素人视频| 亚洲综合久久久| 免费欧美在线视频| 成人黄色av电影| 欧美乱熟臀69xxxxxx| 国产精品视频免费看| 毛片av中文字幕一区二区| 欧洲精品在线观看| 国产精品视频第一区| 午夜精品国产更新| 成人精品在线视频观看| 2017欧美狠狠色| 亚洲18色成人| 色视频欧美一区二区三区| 日韩一级二级三级| 一区二区欧美在线观看| 成人黄色网址在线观看| 91精品国产综合久久久久久漫画 | wwww国产精品欧美| 国产精品久久久久一区二区三区共| 亚洲四区在线观看| 久久www免费人成看片高清| eeuss影院一区二区三区| 亚洲精品在线免费观看视频| 亚洲精品精品亚洲| 99久久er热在这里只有精品66| 日韩欧美综合在线| 国产九色sp调教91| 亚洲欧洲一区二区三区| 91首页免费视频| 亚洲国产成人av网| 欧美成人一区二区三区在线观看| 国产精品99久久久久久久vr| 在线免费观看一区| 国产精品女主播av| 欧美性感一类影片在线播放| 蜜桃精品视频在线观看| 亚洲欧洲99久久| 555夜色666亚洲国产免| 国产在线视频不卡二| 日韩精品一区二区三区三区免费 | 成人av在线资源| 亚洲人成伊人成综合网小说| 91高清视频免费看| 狠狠色丁香婷婷综合| 日韩一区在线免费观看| 欧美美女一区二区| 成人一道本在线| 久久99精品一区二区三区| 亚洲色图视频网| 国产欧美一区在线| 欧美顶级少妇做爰| 色香色香欲天天天影视综合网| 日韩av在线发布| 亚洲私人黄色宅男| 国产精品色哟哟| 欧美一区永久视频免费观看| voyeur盗摄精品| 国产一区福利在线| 日本午夜精品一区二区三区电影| 国产精品美日韩| 久久久久久久久岛国免费| 91精品国产全国免费观看| 91在线国产观看| 成人性生交大合| 国产成人在线免费| 国产一区二区网址| 黄页网站大全一区二区| 免费在线观看日韩欧美| 日本视频在线一区| 免费三级欧美电影| 老司机午夜精品| 国内国产精品久久| 亚洲影视在线播放| 日本不卡123| 国模无码大尺度一区二区三区| 国产在线精品一区二区| 成人久久18免费网站麻豆 | 欧美久久高跟鞋激| 久久蜜桃香蕉精品一区二区三区| 精品国产伦理网| 亚洲国产精品精华液2区45| 亚洲免费观看高清在线观看| 亚洲综合一区二区| 裸体一区二区三区| 国产一区二区免费看| 一本大道久久a久久精二百| 欧美丰满少妇xxxxx高潮对白| 26uuu亚洲综合色| 国产精品入口麻豆九色| 精品免费视频.| 久久影院视频免费| 亚洲精品你懂的| 国产高清精品网站| 欧美一区二区三区的| 一区二区三区精品在线|