zoukankan      html  css  js  c++  java
  • php使用openssl进行Rsa长数据加密,解密保存问题

    原来代码:

        public function encrypt($data) {  
            if (openssl_public_encrypt(base64_encode($data), $encrypted, $this->pubkey))  
                $data = base64_encode($encrypted);  
            else  
                throw new Exception('Unable to encrypt data. Perhaps it is bigger than the key size?');  
      
            return $data;  
        }  
      
        public function decrypt($data) {  
            if (openssl_private_decrypt(base64_decode($data), $decrypted, $this->privkey))  
                $data = $decrypted;  
            else  
                $data = '';  
      
            return $data;  
        }
    

     修改分段以后:

        public function encrypt($originalData){
            $crypto = '';
            foreach (str_split($originalData, 117) as $chunk) {
                openssl_public_encrypt($chunk, $encryptData, $this->pubkey);
                $crypto .= $encryptData;
            }
            return base64_encode($crypto);
        }
    
        public function decrypt($encryptData){
            $crypto = '';
            foreach (str_split(base64_decode($encryptData), 128) as $chunk) {
                openssl_private_decrypt($chunk, $decryptData, $this->privkey);
                $crypto .= $decryptData;
            }
            return $crypto;
        }
    
  • 相关阅读:
    .NET Tools...
    函数重载
    友元课后题
    怎么防止用户输入错误信息
    C#动态求圆的面积
    重载自增
    C++数学应用
    位运算符
    MSDN放出了VS2010简体中文正式版(附下载地址)
    字符串复制
  • 原文地址:https://www.cnblogs.com/zhja/p/5833986.html
Copyright © 2011-2022 走看看