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; }