当前位置:Gxlcms > PHP教程 > php使用openssl进行Rsa长数据加密117解密128

php使用openssl进行Rsa长数据加密117解密128

时间:2021-07-01 10:21:17 帮助过:27人阅读

PHP使用openssl进行Rsa加密,如果要加密的明文太长则会出错,解决方法:加密的时候117个字符加密一次,然后把所有的密文拼接成一个密文;解密的时候需要128个字符解密一下,然后拼接成数据。

加密:

  1. <code> /<span>**</span>
  2. * 加密
  3. * <span>@param</span><span>$originalData</span>
  4. * <span>@return</span> string|void
  5. <span>*/</span>
  6. /<span>*function</span> encrypt(<span>$originalData</span>){
  7. <span>//</span><span>if</span> (openssl_private_encrypt(<span>$originalData</span>, <span>$encryptData</span>, <span>$this</span>->rsaPrivateKey)) {
  8. <span>if</span> (openssl_public_encrypt(<span>$originalData</span>, <span>$encryptData</span>, <span>$this</span>->rsaPublicKey)) {
  9. <span>return</span> base64_encode(<span>$encryptData</span>);
  10. } <span>else</span> {
  11. <span>return</span> false;
  12. }
  13. }<span>*/</span>
  14. function encrypt(<span>$originalData</span>){
  15. <span>$crypto</span> = <span>''</span>;
  16. <span>foreach</span> (str_split(<span>$originalData</span>, <span>117</span>) as <span>$chunk</span>) {
  17. openssl_public_encrypt(<span>$chunk</span>, <span>$encryptData</span>, <span>$this</span>->rsaPublicKey);
  18. <span>$crypto</span> .= <span>$encryptData</span>;
  19. }
  20. <span>return</span> base64_encode(<span>$crypto</span>);
  21. }</code>

解密:

  1. <code> /<span>**</span>
  2. * 私钥解密
  3. * <span>@param</span><span>$encryptData</span><span>*/</span> /<span>*function</span> decrypt(<span>$encryptData</span>){
  4. <span>//</span><span>if</span> (openssl_public_decrypt(base64_decode(<span>$encryptData</span>), <span>$decryptData</span>, <span>$this</span>->rsaPublicKey)) {
  5. <span>if</span> (openssl_private_decrypt(base64_decode(<span>$encryptData</span>), <span>$decryptData</span>, <span>$this</span>->rsaPrivateKey)) {
  6. <span>return</span><span>$decryptData</span>;
  7. } <span>else</span> {
  8. <span>return</span> false;
  9. }
  10. }<span>*/</span>
  11. function decrypt(<span>$encryptData</span>){
  12. <span>$crypto</span> = <span>''</span>;
  13. <span>foreach</span> (str_split(base64_decode(<span>$encryptData</span>), <span>128</span>) as <span>$chunk</span>) {
  14. openssl_private_decrypt(<span>$chunk</span>, <span>$decryptData</span>, <span>$this</span>->rsaPrivateKey);
  15. <span>$crypto</span> .= <span>$decryptData</span>;
  16. }
  17. <span>return</span><span>$crypto</span>;
  18. }</code>

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教程有兴趣的朋友有所帮助。

  • 人气教程排行