PHP基於openssl實現的非對稱加密操作

2021-09-29 10:14:54 字數 857 閱讀 2516

使用非對稱加密主要是借助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_pri

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

使用非對稱加密主要是借助openssl的公鑰和私鑰,用公鑰加密私鑰解密,或者私鑰加密公鑰解密。1.安裝openssl和php的openssl擴充套件 2.生成私鑰 openssl genrsa 用於生成rsa私鑰檔案,生成是可以指定私鑰長度和密碼保護 openssl genrsa out rsa p...

PHP使用OpenSSL實現AES加密的筆記

記錄這兩天遇到的一些問題,一開始主要是對一些概念理解的不清楚 比如aes是一種演算法,而openssl是乙個擴充套件庫,其中包含對aes演算法的實現 當然在完全理解演算法後可以自己實現,但可能會遇到很多問題,我會在以後進行嘗試 目前在專案的使用中,還是使用擴充套件庫的方法最快最簡單 1,加密方法 通...

Linux下基於openssl實現數字簽名

建立原檔案src.txt 也可以是任意型別的檔案 這裡僅作演示,輸入命令 echo this is a digital signature example.src.txta 建立私鑰 rsa加密演算法產生的2048位私鑰,並使用f4作為公鑰的e引數,將私鑰儲存在檔案key.pri中 openssl ...