注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

~~

~~

 
 
 

日志

 
 

php encrypt、decrypt  

2013-07-18 10:07:08|  分类: php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

<?php
    class DesCrypt
    {
        private $key;
       
        function __construct($key){
            $this->key = $key;
        }
        //加密 ($string 要加密的字符串)
        function encrypt($string){
            $size = mcrypt_get_block_size('des','ecb');
            $string = mb_convert_encoding($string, 'GBK', 'UTF-8');
            $string = $this->pkcs5_pad($string, $size);
            $key = $this->key;
            $td = mcrypt_module_open('des', '', 'ecb', '');
            $iv = @mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
            @mcrypt_generic_init($td, $key, $iv);
            $data = mcrypt_generic($td, $string);
            mcrypt_generic_deinit($td);
            mcrypt_module_close($td);
            $data = base64_encode($data);
            return $data;
        }
//解密  ($string 要解密的字符串)
        function decrypt($string) {
            $string = base64_decode($string);
            $key =$this->key;
            $td = mcrypt_module_open('des','','ecb','');
//使用mcrypt_des加密
            $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
            $ks = mcrypt_enc_get_key_size($td);
            @mcrypt_generic_init($td, $key, $iv);
            //初始处理
            $decrypted = mdecrypt_generic($td, $string);
            //解密
            mcrypt_generic_deinit($td);
            //结束
            mcrypt_module_close($td);
           
            $result = $this->pkcs5_unpad($decrypted);
            $result = mb_convert_encoding($result, 'UTF-8', 'GBK');
            return $result;
        }
        function pkcs5_pad ($text, $blocksize){
            $pad = $blocksize - (strlen($text) % $blocksize);
            return $text . str_repeat(chr($pad), $pad);
        }
        function pkcs5_unpad($text){
            $pad = ord($text{strlen($text)-1});
            if ($pad > strlen($text)){
                return false;
            }
            if (strspn($text, chr($pad), strlen($text) - $pad) != $pad){
                return false;
            }
            return substr($text, 0, -1 * $pad);
        }
    }
//example
$key = "14:7D:C5:BC:5D:EB";
$des = new DesCrypt($key);
   
$getContent = file_get_contents("config.json");   //获取
$encryptDes = $des->encrypt($getContent);     //加密
$putContent = file_put_contents('configs.json', $encryptDes);   //加密后写入到原文件中
$descryptDes = $des->decrypt($encryptDes);    //解密
$readInFile = file_put_contents('configs.json', $decryptDes);    //解密后的文件写入新文件
?>

可以用于跟Android对接,php java中DES加密、解密
  评论这张
 
阅读(546)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018