公鑰用於對資料進行加密,私鑰用於對資料進行解密;
私鑰用於對資料進行簽名,公鑰用於對簽名進行驗證。
封裝的rsa**如下:
class
rsa//設定私鑰
$this
->
_keypath
=$path
;$file
=$this
->
_keypath
.directory_separator
.'rsa_private_key.pem'
;$prk
=file_get_contents
($file);
$this
->
_privkey
=openssl_pkey_get_private
($prk);
//設定公鑰
$file
=$this
->
_keypath
.directory_separator
.'rsa_public_key.pem'
;$puk
=file_get_contents
($file);
$this
->
_pubkey
=openssl_pkey_get_public
($puk);
}/**
* setup the private key
*/public
function setupprivkey (
)/**
* setup the public key
*/public
function setuppubkey (
)/**
* @function 私鑰加密
* @param $data
* @return string|null
*/public
function privencrypt (
$data)$r
=openssl_private_encrypt
($data
,$encrypted
,$this
->
_privkey);
if($r)
return
null;}
/** * @function 私鑰解密
* @param $data
* @return string|null
*/public
function privdecrypt (
$encrypted
)$encrypted
=base64_decode
($encrypted);
$r=openssl_private_decrypt
($encrypted
,$decrypted
,$this
->
_privkey);
if($r)
return
null;}
/** * @function 公鑰加密
* @param $data
* @return string|null
*/public
function pubencrypt (
$data)$r
=openssl_public_encrypt
($data
,$encrypted
,$this
->
_pubkey);
if($r)
return
null;}
/** * @function 公鑰解密
* @param $data
* @return string|null
*/public
function pubdecrypt (
$crypted
)$crypted
=base64_decode
($crypted);
$r=openssl_public_decrypt
($crypted
,$decrypted
,$this
->
_pubkey);
if($r)
return
null;}
/** * @function 私鑰加簽
* @param $data
* @return string|null
*/public
function sign (
$data
)openssl_sign
($data
,$sign
,$this
->
_privkey);
//base64編碼
$sign
=base64_encode
($sign);
return
$sign;}
/** * @function 公鑰驗籤
* @param $data
* @return string|null
*/public
function
verify
($data
,$sign
)$result
=(bool)
openssl_verify
($data
,base64_decode
($sign),
$this
->
_pubkey);
return
$result;}
public
function __destruct (
)
使用例子:
class
index
}
得到結果:
RSA 加密 解密 加簽 驗籤
1.公鑰與私鑰碼生成 2.獲取公鑰 獲取公鑰 return private publickey getpublickey catch exception e 獲取私鑰 獲取私鑰 return private privatekey getprivatekey catch exception e bas...
加簽 驗籤 加密 解密 公鑰 私鑰
看了網上的很多資料,發現有些點沒有說到,也比較複雜,這裡根據個人的理解,簡單描述,方便記憶。先理解 公 私 鑰 yue 的意思 私鑰,即私人的鑰匙,是唯一的,所以可以用來證明 是特定的人 公鑰,即公用的鑰匙,我可以將它給很多人 公眾 所以既然那麼多人都知道,所以公鑰並不能證明 一定是特定的人 在理解...
加簽 驗籤 加密 解密 公鑰 私鑰
看了網上的很多資料,發現有些點沒有說到,也比較複雜,這裡根據個人的理解,簡單描述,方便記憶。先理解 公 私 鑰 yue 的意思 私鑰,即私人的鑰匙,是唯一的,所以可以用來證明 是特定的人 公鑰,即公用的鑰匙,我可以將它給很多人 公眾 所以既然那麼多人都知道,所以公鑰並不能證明 一定是特定的人 在理解...