主頁 > 知識庫 > 基于PHP RSA密文過長加密解密 越過1024的解決方法

基于PHP RSA密文過長加密解密 越過1024的解決方法

熱門標(biāo)簽:遼寧ai電銷機器人價格 寧波外呼營銷系統(tǒng) 長沙做地圖標(biāo)注公司 地圖標(biāo)注專員怎么樣 電話機器人銷售主要負責(zé)什么 上海做外呼線路的通信公司 四川保險智能外呼系統(tǒng)供應(yīng)商 房產(chǎn)中介用的是什么外呼系統(tǒng) 福建銀行智能外呼系統(tǒng)價格

如下所示:

?php
namespace helpers;

class OpensslRSA{

 //echo $private_key 私鑰;
 public $private_key = '-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQC+L7ENzBHxKOqjuFHPFKlAt40BatVZhUAHw/G05XshpTGqm9Rv
8wG0EAbFbdo9PuB8DiXdPQLyIfaqkTgpsPjJ1Ow7WKxmYbqZN5IW/GN+TyFWP+MB
2W6IBLPWBDvAl2NJlmU8j3LCPJW1dH4zP1OitkxZMyUuUYYfPuOtO9RJ2wIDAQAB
AoGAUFCbmJQBT7JTxGfmRGkZQLdC2MJg7rkS3TSmMhpm8UJtwvqjr9MTeRL7iQxn
CU4wRrNC0jcds1sca9N/wDt4FCkCala+bg7mwQuPpg5QhXelfFr88ibRnP8y8LmZ
7PPNqx9c4jivhMzJrzNh3luqg6awjsig2w3+EW1/Ubb30AECQQDshTvyc5mpDgiO
4g8q1ztszszL9eCp+IjlUaN51vC3Nj1eXpjbtdSZ0JVKrDdhKcd3rEZVYzMQN/lI
pyq85e/bAkEAzdmN6TF3Y1h3LouumCy6+61ChTFrl/yjw13CGApmAQHhEVyANHr7
NjoxP06eimzn7KHff/eYxd1Emf1SYA8uAQJBAN1ibFUpLRgXAZ20LNw9r+rNutXi
ZJLUBlcXTjv6G0ByLYkKZGuqy7/ZhBPsFL4GnCUBBKhh/ObebaA6kH9VfmcCQGfg
0WxMOiM4EWy7sG+6ouE+ncL5HYKlSz7boYbgOHlpqVpJg6j4Jq1G0HNSCU9xhdg0
F8VL/RxcfLH41AkFoAECQQCR8NDB3BgHqyJfarKKMWQ3qrXHaLfBKExMrpQ8MDzs
MlSBzFOnucufo110lSgjdRlgr8smtU2hx9gXFIqxvfWF
-----END RSA PRIVATE KEY-----';

 //公鑰
 public $public_key = '-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+L7ENzBHxKOqjuFHPFKlAt40B
atVZhUAHw/G05XshpTGqm9Rv8wG0EAbFbdo9PuB8DiXdPQLyIfaqkTgpsPjJ1Ow7
WKxmYbqZN5IW/GN+TyFWP+MB2W6IBLPWBDvAl2NJlmU8j3LCPJW1dH4zP1OitkxZ
MyUuUYYfPuOtO9RJ2wIDAQAB
-----END PUBLIC KEY-----';
public $pi_key;
 public $pu_key;

 //判斷公鑰和私鑰是否可用
 public function __construct()
 {
  $this->pi_key = openssl_pkey_get_private($this->private_key);//這個函數(shù)可用來判斷私鑰是否是可用的,可用返回資源id Resource id
  $this->pu_key = openssl_pkey_get_public($this->public_key);//這個函數(shù)可用來判斷公鑰是否是可用的
  // 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);//加密后的內(nèi)容通常含有特殊字符,需要編碼轉(zhuǎn)換下,在網(wǎng)絡(luò)間通過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);//加密后的內(nèi)容通常含有特殊字符,需要編碼轉(zhuǎn)換下,在網(wǎng)絡(luò)間通過url傳輸時要注意base64編碼是否是url安全的
  return $encrypted;
 }
//加密碼時把特殊符號替換成URL可以帶的內(nèi)容
 function urlsafe_b64encode($string) {
  $data = base64_encode($string);
  $data = str_replace(array('+','/','='),array('-','_',''),$data);
  return $data;
 }

 //解密碼時把轉(zhuǎn)換后的符號替換特殊符號
 function urlsafe_b64decode($string) {
  $data = str_replace(array('-','_'),array('+','/'),$string);
  $mod4 = strlen($data) % 4;
  if ($mod4) {
   $data .= substr('====', $mod4);
  }
  return base64_decode($data);
 }

 //私鑰加密的內(nèi)容通過公鑰可用解密出來
 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);//私鑰加密的內(nèi)容通過公鑰可用解密出來
  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;
 }
}

不用我多寫什么了吧,有問題可以直接聯(lián)系我。

以上這篇基于PHP RSA密文過長加密解密 越過1024的解決方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 淺談PHP SHA1withRSA加密生成簽名及驗簽
  • PHP7.1實現(xiàn)的AES與RSA加密操作示例
  • ThinkPHP實現(xiàn)的rsa非對稱加密類示例
  • PHP封裝的非對稱加密RSA算法示例
  • PHP實現(xiàn)RSA加解密算法示例(生成密鑰位數(shù)為1024位的方法)
  • PHP的RSA加密解密方法以及開發(fā)接口使用
  • PHP檢測接口Traversable用法詳解
  • PHP實現(xiàn)的MD5結(jié)合RSA簽名算法實例
  • PHP實現(xiàn)RSA簽名生成訂單功能【支付寶示例】
  • php rsa 加密,解密,簽名,驗簽詳解
  • php基于openssl的rsa加密解密示例
  • PHP rsa加密解密使用方法
  • php實現(xiàn)RSA加密類實例
  • 詳解PHP使用非對稱加密算法RSA

標(biāo)簽:宿遷 工商登記 宜春 延安 佛山 澳門 深圳 常德

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《基于PHP RSA密文過長加密解密 越過1024的解決方法》,本文關(guān)鍵詞  基于,PHP,RSA,密文,過長,加密解密,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《基于PHP RSA密文過長加密解密 越過1024的解決方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于基于PHP RSA密文過長加密解密 越過1024的解決方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章