GPG在PHP中的使用

2021-09-20 09:29:52 字數 3724 閱讀 6945

gpg加密使用

官網:安裝軟體 1

、libgpg-error2、

libassuan3、

gpgme

php擴充套件安裝

安裝方法:

phpize

./configure

make & make install

生成私鑰與公鑰:

gpg –gen-key
接下來跟隨一步一步選擇與執行,其中一步需要填寫密碼,可以選填,當填寫密碼後解密需要鍵入密碼才能解密。

檢視公鑰:

檢視私鑰:

為key_id

如上面檢視公鑰,

masterkeyid

為94a2dece

匯出公鑰:

gpg -o pubkey.txt -a --export masterkeyid
pubkey.txt

為匯出的目標檔案,會把公鑰儲存在

pubkey.txt

匯出私鑰:

gpg -o prikey.txt -a --export-secret-keys masterkeyid
pubkey.txt

為匯出的目標檔案,會把公鑰儲存在pri

key.txt

生成和使用撤銷證書

生成二進位制證書:

gpg --output revocation-gmail.cert --gen-revoke masterkeyid
匯出證書:

gpg -a -o revocation-gmail.txt --gen-revoke masterkeyid
php擴充套件的使用 基於

gnupg

開發加密操作類

<?php 

namespace tools;

/** * created by phpstorm.

* user: shaunxu

* date: 2019/4/15

* time: 13:56

*/class gpgcatch (\exception $e)

}return true;

}/**

* 獲取加密key

* getkey

* @author shaunxu

* @date 2019/4/15

* @param string $type

* @return bool|string

*/private function getkey($type = "public")

/*** 設定公鑰

* setpublickey

* @author shaunxu

* @date 2019/4/17

* @param $key

*/function setpublickey($key)

/*** 設定私鑰

* setprivatekey

* @author shaunxu

* @date 2019/4/17

* @param $key

*/function setprivatekey($key)

/*** 設定公鑰檔案儲存位址

* setpublickeyfile

* @author shaunxu

* @date 2019/4/17

* @param $file

*/function setpublickeyfile($file)

/*** 設定私鑰檔案儲存位址

* setprivatekeyfile

* @author shaunxu

* @date 2019/4/17

* @param $file

*/function setprivatekeyfile($file)

/*** 讀取檔案

* readfile

* @author shaunxu

* @date 2019/4/15

* @param $file

* @return bool|string

*/private function readfile($file)

return false;

}/**

* 加密檔案

* encrypt

* @author shaunxu

* @date 2019/4/17

* @param $content //需要加密的內容

* @return array

*/function encrypt($content) catch (exception $e)

return $this->result(0 , $enc);

}/**

* 解密檔案

* decrypt

* @author shaunxu

* @date 2019/4/18

* @param $content

* @param string $pass

* @return array

*/function decrypt($content , $pass = "")catch (\exception $e)

return $this->result(0 , $plaintext);

}/**

* 獲取毫秒時間戳

* msectime

* @author shaunxu

* @date 2019/4/16

* @return float

*/function msectime()

/*** 結果輸出

* result

* @author shaunxu

* @date 2019/4/15

* @param int $code

* @param string $data

* @return array

*/function result($code = 0 , $data = "")

}

使用示例:

//加密

$gpg=newgpg();

$content=file_get_contents($file);//需要加密的內容

$gpg->setpublickey($pubkey);//設定公鑰key儲存檔案

$result=$gpg->encrypt($content);//普通加密

//解密

$pass="";                       //生成key時輸入的密碼

$gpg->setprivatekey($prikey);

$result=$gpg->decrypt($content,$pass);//普通解密

Memcahe 在 PHP 中的使用

memcache 在 php 中有面向過程和物件導向兩種使用,這裡主要講述物件導向的使用,具體可以參考 php 手冊。memcache 的介面 物件導向的介面 1 memcache connect 開啟乙個 memcache 連線,例如 connect localhost 11211 開啟連線,第乙...

redis在php中,在PHP中使用redis

這裡是在mac os上安裝redis,並在php中開啟redis。在mac os上安裝redis 首先是安裝,它會預設安裝到 usr local bin下 複製 如下 cd tmp wget tar zxf redis 2.6.9.tar.gz cd redis 2.6.9 make sudo ma...

Redis 集群在PHP中的使用

注 需自行搭建redis集群環境 1.安裝 predis 包 composer require predis predis2.redis 基礎使用 預設值為 127.0.0.1 6379 client new predis client client set foo bar value client...