zoukankan      html  css  js  c++  java
  • php des 加密类

    <?php
    /**
    *@see Yii CSecurityManager;
    */
    class Des{

    public static function encrypt($data,$key){
    $module=mcrypt_module_open('des','', MCRYPT_MODE_CBC,'');
    $key=substr(md5($key),0,mcrypt_enc_get_key_size($module));
    srand();
    $iv=mcrypt_create_iv(mcrypt_enc_get_iv_size($module), MCRYPT_RAND);
    mcrypt_generic_init($module,$key,$iv);
    $encrypted=$iv.mcrypt_generic($module,$data);
    mcrypt_generic_deinit($module);
    mcrypt_module_close($module);
    return md5($data).'_'.base64_encode($encrypted);
    }

    public static function decrypt($data,$key){
    $_data = explode('_',$data,2);
    if(count($_data)<2){
    return false;
    }
    $data = base64_decode($_data[1]);
    $module=mcrypt_module_open('des','', MCRYPT_MODE_CBC,'');
    $key=substr(md5($key),0,mcrypt_enc_get_key_size($module));
    $ivSize=mcrypt_enc_get_iv_size($module);
    $iv=substr($data,0,$ivSize);
    mcrypt_generic_init($module,$key,$iv);
    $decrypted=mdecrypt_generic($module,substr($data,$ivSize,strlen($data)));
    mcrypt_generic_deinit($module);
    mcrypt_module_close($module);
    $decrypted = rtrim($decrypted,"");
    if($_data[0]!=md5($decrypted)){
    return false;
    }
    return $decrypted;
    }

    }

  • 相关阅读:
    SVN项目提交报错
    Post请求报文压缩
    mysql表结构的修改-sql记录
    项目内添加quartz定时任务
    Nginx配置-通过nginx访问项目
    Mysql的使用 -简单的索引
    使用git第一次成功,记录
    Spring P命名空间 02
    Mybatis 一级、二级缓存
    延迟加载
  • 原文地址:https://www.cnblogs.com/lijiageng/p/5953377.html
Copyright © 2011-2022 走看看