zoukankan      html  css  js  c++  java
  • onethink 密码加密方式详解

     1 /**
     2  * 系统非常规MD5加密方法
     3  * @param  string $str 要加密的字符串
     4  * @return string 
     5  */
     6 function think_ucenter_md5($str, $key = 'ThinkUCenter'){
     7     return '' === $str ? '' : md5(sha1($str) . $key);
     8 }
     9 
    10 /**
    11  * 系统加密方法
    12  * @param string $data 要加密的字符串
    13  * @param string $key  加密密钥
    14  * @param int $expire  过期时间 (单位:秒)
    15  * @return string 
    16  */
    17 function think_ucenter_encrypt($data, $key, $expire = 0) {
    18     $key  = md5($key);
    19     $data = base64_encode($data);
    20     $x    = 0;
    21     $len  = strlen($data);
    22     $l    = strlen($key);
    23     $char =  '';
    24     for ($i = 0; $i < $len; $i++) {
    25         if ($x == $l) $x=0;
    26         $char  .= substr($key, $x, 1);
    27         $x++;
    28     }
    29     $str = sprintf('%010d', $expire ? $expire + time() : 0);
    30     for ($i = 0; $i < $len; $i++) {
    31         $str .= chr(ord(substr($data,$i,1)) + (ord(substr($char,$i,1)))%256);
    32     }
    33     return str_replace('=', '', base64_encode($str));
    34 }
  • 相关阅读:
    JS常用自定义方法
    mybatis like用法
    设计模式之前之UML
    DSU模板(树的启发式合并)
    【hihocoder编程练习赛9】闰秒
    静态链接与动态链接的区别【转】
    pragma指令详解(转载)
    Crawl(2)
    Crawl(1)
    Treap
  • 原文地址:https://www.cnblogs.com/lovebing/p/6743546.html
Copyright © 2011-2022 走看看