如下所示:
<"htmlcode">public $pi_key; public $pu_key; //判断公钥和私钥是否可用 public function __construct() { $this->pi_key = openssl_pkey_get_private($this->private_key);//这个函数可用来判断私钥是否是可用的,可用返回资源id Resource id $this->pu_key = openssl_pkey_get_public($this->public_key);//这个函数可用来判断公钥是否是可用的 // print_r($this->pi_key);echo "\n"; // print_r($this->pu_key);echo "\n"; } //私钥加密 /*public function PrivateEncrypt($data){ openssl_private_encrypt($data,$encrypted,$this->pi_key); $encrypted = $this->urlsafe_b64encode($encrypted);//加密后的内容通常含有特殊字符,需要编码转换下,在网络间通过url传输时要注意base64编码是否是url安全的 return $encrypted; }*/ public function PrivateEncrypt($data){ // openssl_private_encrypt($data,$encrypted,$this->pi_key); $crypto = ''; foreach (str_split($data, 117) as $chunk) { openssl_private_encrypt($chunk, $encryptData, $this->pi_key); $crypto .= $encryptData; } $encrypted = $this->urlsafe_b64encode($crypto);//加密后的内容通常含有特殊字符,需要编码转换下,在网络间通过url传输时要注意base64编码是否是url安全的 return $encrypted; }//加密码时把特殊符号替换成URL可以带的内容 function urlsafe_b64encode($string) { $data = base64_encode($string); $data = str_replace(array('+','/','='),array('-','_',''),$data); return $data; } //解密码时把转换后的符号替换特殊符号 function urlsafe_b64decode($string) { $data = str_replace(array('-','_'),array('+','/'),$string); $mod4 = strlen($data) % 4; if ($mod4) { $data .= substr('====', $mod4); } return base64_decode($data); } //私钥加密的内容通过公钥可用解密出来 public function PublicDecrypt($encrypted){ // $encrypted = $this->urlsafe_b64decode($encrypted); $crypto = ''; foreach (str_split($this->urlsafe_b64decode($encrypted), 128) as $chunk) { openssl_public_decrypt($chunk, $decryptData, $this->pu_key); $crypto .= $decryptData; } //openssl_public_decrypt($encrypted,$decrypted,$this->pu_key);//私钥加密的内容通过公钥可用解密出来 return $crypto; } //公钥加密 public function PublicEncrypt($data){ //openssl_public_encrypt($data,$encrypted,$this->pu_key);//公钥加密 $crypto = ''; foreach (str_split($data, 117) as $chunk) { openssl_public_encrypt($chunk, $encryptData, $this->pu_key); $crypto .= $encryptData; } $encrypted = $this->urlsafe_b64encode($crypto); return $encrypted; } //私钥解密 public function PrivateDecrypt($encrypted) { $crypto = ''; foreach (str_split($this->urlsafe_b64decode($encrypted), 128) as $chunk) { openssl_private_decrypt($chunk, $decryptData, $this->pi_key); $crypto .= $decryptData; } //$encrypted = $this->urlsafe_b64decode($encrypted); //openssl_private_decrypt($encrypted,$decrypted,$this->pi_key); return $crypto; } }不用我多写什么了吧,有问题可以直接联系我。
以上这篇基于PHP RSA密文过长加密解密 越过1024的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
标签:
rsa密文过长加密解密
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
桃源资源网 Design By www.nqtax.com
暂无“基于PHP RSA密文过长加密解密 越过1024的解决方法”评论...