中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在php中利用rsa進行加密解密

發布時間:2020-12-16 16:24:10 來源:億速云 閱讀:196 作者:Leah 欄目:開發技術

本篇文章為大家展示了怎么在php中利用rsa進行加密解密,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

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
從上面看出通過私鑰能生成對應的公鑰,因此我們將私鑰private_key.pem用在服務器端,公鑰發放給android跟ios等前端

2、php中用生成的公鑰、私鑰進行加密解密

$fp=fopen("rsa/rsa_private_key.pem","r"); //你的私鑰文件路徑
$private_key=fread($fp,8192);
fclose($fp);
$fp1=fopen("rsa/rsa_public_key.pem","r"); //你的公鑰文件路徑
$public_key=fread($fp1,8192);
fclose($fp1);
//echo $private_key; 
$pi_key=openssl_pkey_get_private($private_key);//這個函數可用來判斷私鑰是否是可用的,可用返回資源id Resource id 
$pu_key=openssl_pkey_get_public($public_key );//這個函數可用來判斷公鑰是否是可用的
print_r($pi_key);echo "\n"; echo "<br>";
print_r($pu_key);echo "\n"; echo "<br>";
echo "<hr>";
$data='php ras加密算法';
$encrypted = ""; 
$decrypted = ""; 
echo "加密的源數據:".$data."\n"; echo "<br>";
echo "private key encrypt:\n"; echo "<br>";
openssl_private_encrypt($data,$encrypted,$pi_key);//私鑰加密 
$encrypted = base64_encode($encrypted);//加密后的內容通常含有特殊字符,需要編碼轉換下,在網絡間通過url傳輸時要注意base64編碼是否是url安全的 
echo '私鑰加密后:'.$encrypted."\n"; echo "<br>";echo "<br>";
echo "public key decrypt:\n"; echo "<br>";
openssl_public_decrypt(base64_decode($encrypted),$decrypted,$pu_key);//私鑰加密的內容通過公鑰可用解密出來 
echo '公鑰解密后:'.$decrypted."\n"; echo "<br>";
echo "<hr>";
echo "public key encrypt:\n"; echo "<br>";
openssl_public_encrypt($data,$encrypted,$pu_key);//公鑰加密 
$encrypted = base64_encode($encrypted); 
echo $encrypted,"\n"; echo "<br>";
echo "private key decrypt:\n"; echo "<br>";
openssl_private_decrypt(base64_decode($encrypted),$decrypted,$pi_key);//私鑰解密 
echo $decrypted,"\n"; echo "<br>";

PHP的RSA配置常見問題

●PHP開發語言的代碼示例中openssl文件夾中的3個DLL文件用法

1、如果你的系統是windows系統,且system32文件目錄下沒有libeay32.dll、ssleay32.dll這兩個文件
那么需要拷貝這兩個文件到system32文件目錄。

2、如果您的php安裝目錄下(php\ext)中沒有php_openssl.dll

那么請把php_openssl.dll放在這個文件夾中

上述內容就是怎么在php中利用rsa進行加密解密,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲水县| 巨鹿县| 平武县| 肥西县| 莱阳市| 保亭| 扬州市| 赞皇县| 江孜县| 胶南市| 五原县| 阳谷县| 哈密市| 昌江| 延寿县| 荣昌县| 班戈县| 洛浦县| 普洱| 津南区| 翼城县| 曲周县| 方正县| 望奎县| 昌图县| 启东市| 麟游县| 河源市| 大足县| 凌海市| 革吉县| 沙坪坝区| 界首市| 亚东县| 长垣县| 常熟市| 金昌市| 新宁县| 乌鲁木齐县| 荔浦县| 黔东|