/** * rsa加密解密演算法
* class rsa */
class
rsa
if(false === strpos($public_key, '-----'))
}catch (\exception$e)
return
$public_key
; }
/*** 獲取pem格式的私鑰
* @param $private_key 私鑰檔案路徑或者字串
* @return bool|mixed|string
*/public
static
function private_key($private_key, $key_password='')
if(false === strpos($private_key, '-----'))
else}}
catch (\exception$e)
return
$private_key
; }
/*** rsa公鑰加密
* @param $decrypted 待加密字串
* @param $public_key 公鑰
* @return bool|string
*/public
static
function public_encrypt($decrypted, $public_key
)
$encrypted = base64_encode($encrypted
); openssl_free_key(
$publickey
);
unset($decrypted, $public_key, $publickey, $decrypt, $encrypt
); }
catch (\exception$e)
return
$encrypted
; }
/*** rsa私鑰加密
* @param $decrypted 待加密字串
* @param $private_key 私鑰
* @return bool|string
*/public
static
function private_encrypt($decrypted, $private_key, $key_password='')
$encrypted = base64_encode($encrypted
); openssl_free_key(
$privatekey
);
unset($decrypted, $private_key, $privatekey, $decrypt, $encrypt
); }
catch (\exception$e)
return
$encrypted
; }
/*** rsa公鑰解密
* @param $encrypted 待解密密文
* @param $public_key 公鑰
* @param string $key_password 證書密碼
* @return bool|string
*/public
static
function public_decrypt($encrypted, $public_key
)
openssl_free_key(
$publickey
);
unset($encrypted, $public_key, $publickey, $encrypt, $decrypt
); }
catch (\exception$e)
return
$decrypted
; }
/*** rsa私鑰解密
* @param $encrypted 待解密密文
* @param $private_key 私鑰
* @param string $key_password 證書密碼
* @return bool|string
*/public
static
function private_decrypt($encrypted, $private_key, $key_password='')
openssl_free_key(
$privatekey
);
unset($encrypted, $private_key, $privatekey, $encrypt, $decrypt
); }
catch (\exception$e)
return
$decrypted
; }
/*** 私鑰生成簽名
* @param $string 待簽名字串
* @param $private_key 私鑰
* @param string $key_password 證書密碼
* @return bool|string
*/public
static
function sign($string, $private_key, $key_password='')
catch (\exception$e)
return
$sign
; }
/*** 公鑰校驗簽名
* @param $string 待簽名字串
* @param $sign 簽名
* @param $public_key 公鑰
* @return bool
*/public
static
function verify($string, $sign, $public_key
)
catch (\exception$e)
return
$result === 1 ? true : false
; }
}
RSA加密解密
擷取自我的部落格 因為專案需要,最近做乙個rsa加密解密的介面,使用go進行開發,介面使用jsonrpc,go 對rsa加密解密有很好的支援,不過由於受限於底層微控制器,所以上層應用需要做一些稍微的調整。rsa是一種非對稱加密演算法,什麼是非對稱加密演算法呢,那就是公鑰 私鑰可互相進行加密解密 公鑰...
RSA加密解密
rsa加密使用公鑰加密,使用私鑰解密,rsa可以自己隨機生成一組公鑰和私鑰 rsa隨機生成一組公鑰和秘鑰 隨機生成公鑰和秘鑰 沒建立乙個rsacryptoserviceprovider物件,能生成一組隨機的秘鑰,物件相同不管執行多少次方法都是生成的同一組秘鑰 公鑰 私鑰 public static ...
RSA加密解密
rsautil.j a package com.soc.cloud.util import com.soc.cloud.exception.commonerror import com.soc.cloud.param.baseerrresult import com.soc.cloud.util.r...