国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP基于openssl實現的非對稱加密操作示例

2024-05-05 00:06:12
字體:
來源:轉載
供稿:網友

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

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

1.安裝openssl和php的openssl擴展

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

openssl genrsa -out rsa_private_key.pem 1024

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

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擴展支持');(file_exists($privateKeyFilePath) && file_exists($publicKeyFilePath)) or die('密鑰或者公鑰的文件路徑不正確');/*** 生成Resource類型的密鑰,如果密鑰文件內容被破壞,openssl_pkey_get_private函數返回false*/$privateKey = openssl_pkey_get_private(file_get_contents($privateKeyFilePath));/*** 生成Resource類型的公鑰,如果公鑰文件內容被破壞,openssl_pkey_get_public函數返回false*/$publicKey = openssl_pkey_get_public(file_get_contents($publicKeyFilePath));($privateKey && $publicKey) or die('密鑰或者公鑰不可用');/*** 原數據*/$originalData = '加密前hahahaha';/*** 加密以后的數據,用于在網路上傳輸*/$encryptData = '';echo '原數據為:', $originalData, PHP_EOL;///////////////////////////////用私鑰加密////////////////////////if (openssl_private_encrypt($originalData, $encryptData, $privateKey)) {  /**   * 加密后 可以base64_encode后方便在網址中傳輸 或者打印 否則打印為亂碼   */  echo '加密成功,加密后數據(base64_encode后)為:', base64_encode($encryptData), PHP_EOL;} else {  die('加密失敗');}///////////////////////////////用公鑰解密/////////////////////////*** 解密以后的數據*/$decryptData ='';if (openssl_public_decrypt($encryptData, $decryptData, $publicKey)) {  echo '解密成功,解密后數據為:', $decryptData, PHP_EOL;} else {  die('解密成功');}

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


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

圖片精選

主站蜘蛛池模板: 茌平县| 堆龙德庆县| 杭锦后旗| 安福县| 襄樊市| 九寨沟县| 三门峡市| 望都县| 辛集市| 龙陵县| 鲁甸县| 通化县| 江陵县| 罗平县| 陆川县| 台江县| 建平县| 洞头县| 含山县| 田东县| 宁明县| 泌阳县| 咸阳市| 广灵县| 嘉禾县| 北安市| 仁布县| 莱州市| 保康县| 南皮县| 安岳县| 淳安县| 广德县| 福泉市| 黄陵县| 白朗县| 江口县| 徐州市| 西城区| 静宁县| 玉龙|