最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP實(shí)現(xiàn)RSA加解密算法示例(生成密鑰位數(shù)為1024位的方法)

 更新時(shí)間:2018年03月21日 08:56:31   作者:mosishu  
下面小編就為大家分享一篇PHP實(shí)現(xiàn)RSA加解密算法示例(生成密鑰位數(shù)為1024位的方法),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

大家可以先到http://web.chacuo.net/netrsakeypair這個(gè)網(wǎng)站,在線生成公鑰和私鑰

RSA非對(duì)稱加密算法,如果是公鑰加密,就得用私鑰解密,反過(guò)來(lái)也一樣,私鑰加密的就用公鑰解密,以下是相關(guān)實(shí)現(xiàn)函數(shù)

/**
 * RSA私鑰加密
 * @param string $private_key 私鑰
 * @param string $data 要加密的字符串
 * @return string $encrypted 返回加密后的字符串
 * @author mosishu
 */
function privateEncrypt($private_key,$data){
 $encrypted = '';
 $pi_key = openssl_pkey_get_private($private_key);//這個(gè)函數(shù)可用來(lái)判斷私鑰是否是可用的,可用返回資源id Resource id
 //最大允許加密長(zhǎng)度為117,得分段加密
 $plainData = str_split($data, 100);//生成密鑰位數(shù) 1024 bit key
 foreach($plainData as $chunk){
  $partialEncrypted = '';
  $encryptionOk = openssl_private_encrypt($chunk,$partialEncrypted,$pi_key);//私鑰加密
  if($encryptionOk === false){
   return false;
  }
  $encrypted .= $partialEncrypted;
 }
 
 $encrypted = base64_encode($encrypted);//加密后的內(nèi)容通常含有特殊字符,需要編碼轉(zhuǎn)換下,在網(wǎng)絡(luò)間通過(guò)url傳輸時(shí)要注意base64編碼是否是url安全的
 return $encrypted;
}
/**
 * RSA公鑰解密(私鑰加密的內(nèi)容通過(guò)公鑰可以解密出來(lái))
 * @param string $public_key 公鑰
 * @param string $data 私鑰加密后的字符串
 * @return string $decrypted 返回解密后的字符串
 * @author mosishu
 */
function publicDecrypt($public_key,$data){
 $decrypted = '';
 $pu_key = openssl_pkey_get_public($public_key);//這個(gè)函數(shù)可用來(lái)判斷公鑰是否是可用的
 $plainData = str_split(base64_decode($data), 128);//生成密鑰位數(shù) 1024 bit key
 foreach($plainData as $chunk){
  $str = '';
  $decryptionOk = openssl_public_decrypt($chunk,$str,$pu_key);//公鑰解密
  if($decryptionOk === false){
   return false;
  }
  $decrypted .= $str;
 }
 return $decrypted;
}
//RSA公鑰加密
function publicEncrypt($public_key,$data){
 $encrypted = '';
 $pu_key = openssl_pkey_get_public($public_key);
 $plainData = str_split($data, 100);
 foreach($plainData as $chunk){
  $partialEncrypted = '';
  $encryptionOk = openssl_public_encrypt($chunk,$partialEncrypted,$pu_key);//公鑰加密
  if($encryptionOk === false){
   return false;
  }
  $encrypted .= $partialEncrypted;
 }
 $encrypted = base64_encode($encrypted);
 return $encrypted;
}
//RSA私鑰解密
function privateDecrypt($private_key,$data){
 $decrypted = '';
 $pi_key = openssl_pkey_get_private($private_key);
 $plainData = str_split(base64_decode($data), 128); 
 foreach($plainData as $chunk){
  $str = '';
  $decryptionOk = openssl_private_decrypt($chunk,$str,$pi_key);//私鑰解密
  if($decryptionOk === false){
   return false;
  }
  $decrypted .= $str;
 }
 return $decrypted;
}

以上這篇PHP實(shí)現(xiàn)RSA加解密算法示例(生成密鑰位數(shù)為1024位的方法)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

光山县| 乳山市| 长丰县| 浦北县| 翼城县| 集贤县| 云阳县| 金乡县| 英德市| 宁城县| 渝中区| 林甸县| 鹤峰县| 黑龙江省| 滦南县| 滦南县| 兴文县| 论坛| 广饶县| 景德镇市| 东明县| 新营市| 于都县| 北碚区| 广河县| 秦安县| 雷波县| 宾川县| 青州市| 华安县| 阜阳市| 本溪市| 仪征市| 辉县市| 九江县| 洪泽县| 玉龙| 昭觉县| 瑞金市| 金昌市| 景洪市|