zoukankan      html  css  js  c++  java
  • 【PHP】使用openssl进行Rsa长数据加密(117)解密(128)

    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;
        }

    学习留存!

    原文地址:http://blog.csdn.net/leedaning/article/details/51780511

  • 相关阅读:
    [Sql Server][原创]
    SQL Server T-SQL高级查询
    SQL 网文链接
    Epicor系统二次开发
    lambda表达式的变量作用域
    写一个正则表达式匹配手机号
    函数装饰器在类方法中的使用方法
    关于Django的session的使用 (装饰器版)
    Django ORM相关操作(2)
    Django ORM相关操作(1)
  • 原文地址:https://www.cnblogs.com/richerdyoung/p/7866502.html
Copyright © 2011-2022 走看看