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

PHP基于openssl實(shí)現(xiàn)的非對稱加密操作示例

 更新時(shí)間:2019年01月11日 11:46:18   作者:?erdan  
這篇文章主要介紹了PHP基于openssl實(shí)現(xiàn)的非對稱加密操作,結(jié)合實(shí)例形式分析了openssl安裝、密鑰生成及php基于openssl的非對稱加密算法相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了PHP基于openssl實(shí)現(xiàn)的非對稱加密操作。分享給大家供大家參考,具體如下:

使用非對稱加密主要是借助openssl的公鑰和私鑰,用公鑰加密私鑰解密,或者私鑰加密公鑰解密。

1.安裝openssl和php的openssl擴(kuò)展

2.生成私鑰:openssl genrsa 用于生成rsa私鑰文件,生成是可以指定私鑰長度和密碼保護(hù)

openssl genrsa -out rsa_private_key.pem 1024

3.生成公鑰:rsa命令用于處理RSA密鑰、格式轉(zhuǎn)換和打印信息

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

4.這里我們使用私鑰加密,公鑰解密

<?php
/**
* 密鑰文件的路徑
*/
$privateKeyFilePath = 'rsa_private_key.pem';
/**
* 公鑰文件的路徑
*/
$publicKeyFilePath = 'rsa_public_key.pem';
extension_loaded('openssl') or die('php需要openssl擴(kuò)展支持');
(file_exists($privateKeyFilePath) && file_exists($publicKeyFilePath)) or die('密鑰或者公鑰的文件路徑不正確');
/**
* 生成Resource類型的密鑰,如果密鑰文件內(nèi)容被破壞,openssl_pkey_get_private函數(shù)返回false
*/
$privateKey = openssl_pkey_get_private(file_get_contents($privateKeyFilePath));
/**
* 生成Resource類型的公鑰,如果公鑰文件內(nèi)容被破壞,openssl_pkey_get_public函數(shù)返回false
*/
$publicKey = openssl_pkey_get_public(file_get_contents($publicKeyFilePath));
($privateKey && $publicKey) or die('密鑰或者公鑰不可用');
/**
* 原數(shù)據(jù)
*/
$originalData = '加密前hahahaha';
/**
* 加密以后的數(shù)據(jù),用于在網(wǎng)路上傳輸
*/
$encryptData = '';
echo '原數(shù)據(jù)為:', $originalData, PHP_EOL;
///////////////////////////////用私鑰加密////////////////////////
if (openssl_private_encrypt($originalData, $encryptData, $privateKey)) {
  /**
   * 加密后 可以base64_encode后方便在網(wǎng)址中傳輸 或者打印 否則打印為亂碼
   */
  echo '加密成功,加密后數(shù)據(jù)(base64_encode后)為:', base64_encode($encryptData), PHP_EOL;
} else {
  die('加密失敗');
}
///////////////////////////////用公鑰解密////////////////////////
/**
* 解密以后的數(shù)據(jù)
*/
$decryptData ='';
if (openssl_public_decrypt($encryptData, $decryptData, $publicKey)) {
  echo '解密成功,解密后數(shù)據(jù)為:', $decryptData, PHP_EOL;
} else {
  die('解密成功');
}

PS:關(guān)于加密解密感興趣的朋友還可以參考本站在線工具:

在線DES加密/解密工具
http://tools.jb51.net/password/des_encode

MD5在線加密工具:
http://tools.jb51.net/password/CreateMD5Password

在線散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt

在線MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha

在線sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php加密方法總結(jié)》、《PHP編碼與轉(zhuǎn)碼操作技巧匯總》、《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》及《php正則表達(dá)式用法總結(jié)

希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 完美解決php 導(dǎo)出excle的.csv格式的數(shù)據(jù)時(shí)亂碼問題

    完美解決php 導(dǎo)出excle的.csv格式的數(shù)據(jù)時(shí)亂碼問題

    下面小編就為大家?guī)硪黄昝澜鉀Qphp 導(dǎo)出excle的.csv格式的數(shù)據(jù)時(shí)亂碼問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • php中如何判斷一個(gè)網(wǎng)頁請求是ajax請求還是普通請求

    php中如何判斷一個(gè)網(wǎng)頁請求是ajax請求還是普通請求

    以下是對php中如何判斷一個(gè)網(wǎng)頁請求是ajax請求還是普通請求的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下
    2013-08-08
  • 詳解PHP設(shè)計(jì)模式之依賴注入模式

    詳解PHP設(shè)計(jì)模式之依賴注入模式

    依賴注入模式:依賴注入是控制反轉(zhuǎn)的一種實(shí)現(xiàn)方式。要實(shí)現(xiàn)控制反轉(zhuǎn),通常的解決方案是將創(chuàng)建被調(diào)用者實(shí)例的工作交由 IoC 容器來完成,然后在調(diào)用者中注入被調(diào)用者(通過構(gòu)造器 / 方法注入實(shí)現(xiàn)),這樣我們就實(shí)現(xiàn)了調(diào)用者與被調(diào)用者的解耦,該過程被稱為依賴注入。
    2021-05-05
  • php實(shí)現(xiàn)SAE上使用storage上傳與下載文件的方法

    php實(shí)現(xiàn)SAE上使用storage上傳與下載文件的方法

    這篇文章主要介紹了php實(shí)現(xiàn)SAE上使用storage上傳與下載文件的方法,實(shí)例分析了基于SaeStorage類實(shí)現(xiàn)文件傳輸?shù)募记?需要的朋友可以參考下
    2015-06-06
  • php從數(shù)據(jù)庫查詢結(jié)果生成樹形列表的方法

    php從數(shù)據(jù)庫查詢結(jié)果生成樹形列表的方法

    這篇文章主要介紹了php從數(shù)據(jù)庫查詢結(jié)果生成樹形列表的方法,涉及php操作html元素生成樹形列表的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • PHP模擬登陸163郵箱發(fā)郵件及獲取通訊錄列表的方法

    PHP模擬登陸163郵箱發(fā)郵件及獲取通訊錄列表的方法

    這篇文章主要介紹了PHP模擬登陸163郵箱發(fā)郵件及獲取通訊錄列表的方法,實(shí)例分析了php實(shí)用curl模擬登陸163郵箱的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • php 圖片加水印與上傳圖片加水印php類

    php 圖片加水印與上傳圖片加水印php類

    PHP圖片加水印的實(shí)現(xiàn)代碼編寫起來比較復(fù)雜,不過對于經(jīng)驗(yàn)豐富的老手來說還是比較輕松的。下面我們就以一段代碼示例來分析一下PHP圖片加水印的原理。
    2010-05-05
  • PHP isset()及empty()用法區(qū)別詳解

    PHP isset()及empty()用法區(qū)別詳解

    這篇文章主要介紹了PHP isset()及empty()用法區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • php后門URL的防范

    php后門URL的防范

    后門URL是指雖然無需直接調(diào)用的資源能直接通過URL訪問
    2013-11-11
  • PHP中的錯(cuò)誤處理、異常處理機(jī)制分析

    PHP中的錯(cuò)誤處理、異常處理機(jī)制分析

    在編寫php程序時(shí),錯(cuò)誤處理是一個(gè)重要的部分。如果程序中缺少錯(cuò)誤檢測代碼,那么看上去很不專業(yè),也為安全風(fēng)險(xiǎn)敞開了大門
    2012-05-05

最新評論

临澧县| 张北县| 略阳县| 西藏| 葫芦岛市| 大庆市| 苍溪县| 昌都县| 灯塔市| 长垣县| 同仁县| 中牟县| 波密县| 镇安县| 蕉岭县| 榆中县| 兴义市| 安陆市| 泾川县| 革吉县| 江永县| 苏尼特右旗| 紫阳县| 石屏县| 从江县| 阜宁县| 望都县| 汕头市| 珲春市| 龙泉市| 云安县| 和静县| 呼玛县| 育儿| 宁阳县| 阿城市| 灌阳县| 景宁| 盖州市| 五河县| 盐源县|