PHP使用openssl進行Rsa加密,如果要加密的明文太長則會出錯,解決方案:加密的時候117個字元加密一次,然後把所有的密文拼接成一個密文;解密的時候需要128個字元解密一下,然後拼接成資料。
加密:
/** * 加密 * @param$originalData * @return string|void */ /*function encrypt($originalData){ //if (openssl_private_encrypt($originalData, $encryptData, $this->rsaPrivateKey)) { if (openssl_public_encrypt($originalData, $encryptData, $this->rsaPublicKey)) { return base64_encode($encryptData); } else { return false; } }*/ function encrypt($originalData){ $crypto = ''; foreach (str_split($originalData, 117) as $chunk) { openssl_public_encrypt($chunk, $encryptData, $this->rsaPublicKey); $crypto .= $encryptData; } return base64_encode($crypto); }
解密:
/** * 私密金鑰解密 * @param$encryptData*/ /*function decrypt($encryptData){ //if (openssl_public_decrypt(base64_decode($encryptData), $decryptData, $this->rsaPublicKey)) { if (openssl_private_decrypt(base64_decode($encryptData), $decryptData, $this->rsaPrivateKey)) { return$decryptData; } else { return false; } }*/ function decrypt($encryptData){ $crypto = ''; foreach (str_split(base64_decode($encryptData), 128) as $chunk) { openssl_private_decrypt($chunk, $decryptData, $this->rsaPrivateKey); $crypto .= $decryptData; } return$crypto; }
Author:leedaning
本文地址:http://blog.csdn.net/leedaning/article/details/51780511
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
').text(i)); }; $numbering.fadeIn(1700); }); });
以上就介紹了 php使用openssl進行Rsa長資料加密117解密128,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。