PHP RAS 利用已知公钥加解密 /* RSA 加密 @param string $param 要加密的字符串 @param string $key RSA公钥 @return string 返回加密后的字符串*/private function rsaEncrypt($param,$key){ //声明一个空字符串 $str
/*
RSA 加密
@param string $param 要加密的字符串
@param string $key RSA公钥
@return string 返回加密后的字符串
*/
private function rsaEncrypt($param,$key){
//声明一个空字符串
$str = '';
//验证公钥是否可用
$key = openssl_pkey_get_public($key);
//判断要加密的字符串长度 如果长度超过117 则将字符串分割加密
if(strlen($param)>117){
//分割字符串
$parArr = str_split($param,117);
foreach($parArr as $k=>$v){
openssl_public_encrypt($v,$encrypt,$key);
$str .= $encrypt;
}
}else{
openssl_public_encrypt($param,$encrypt,$key);
$str = $encrypt;
}
return base64_encode($str);
}
/*
RSA 解密
@param string $param 要解密的字符串
@param string $key RSA公钥
@return string 返回解密后的字符串
*/
private function rsaDecrypt($param,$key){
//对字符串进行base64解码
$param = base64_decode($param);
//验证公钥是否可用
$key = openssl_pkey_get_public($key);
//声明一个空字符串
$str = '';
//判断要解密的字符串长度 如果长度超过128 则将字符串分割解密
if(strlen($param)>128){
$parArr = str_split($param,128);
foreach($parArr as $k=>$v){
openssl_public_decrypt($v,$decrypt,$key);
$str .= $decrypt;
}
}else{
openssl_public_decrypt($param,$decrypt,$key);
$str = $decrypt;
}
return $str;
}
