博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP加密解密函数之Crypt
阅读量:4678 次
发布时间:2019-06-09

本文共 1621 字,大约阅读时间需要 5 分钟。

/** * Crypt 加密实现类 * @category   ORG * @package  ORG * @subpackage  Crypt * @author    liu21st 
*/class Crypt { /** * 加密字符串 * @param string $str 字符串 * @param string $key 加密key * @param integer $expire 有效期(秒) * @return string */ public static function encrypt($str,$key,$expire=0){ $expire = sprintf('%010d', $expire ? $expire + time():0); $r = md5($key); $c=0; $v = ""; $str = $expire.$str; $len = strlen($str); $l = strlen($r); for ($i=0;$i<$len;$i++){ if ($c== $l) $c=0; $v.= substr($r,$c,1) . (substr($str,$i,1) ^ substr($r,$c,1)); $c++; } return self::ed($v,$key); } /** * 解密字符串 * @param string $str 字符串 * @param string $key 加密key * @return string */ public static function decrypt($str,$key) { $str = self::ed($str,$key); $v = ""; $len = strlen($str); for ($i=0;$i<$len;$i++){ $md5 = substr($str,$i,1); $i++; $v.= (substr($str,$i,1) ^ $md5); } $data = $v; $expire = substr($data,0,10); if($expire > 0 && $expire < time()) { return ''; } $data = substr($data,10); return $data; } function ed($str,$key) { $r = md5($key); $c=0; $v = ""; $len = strlen($str); $l = strlen($r); for ($i=0;$i<$len;$i++) { if ($c==$l) $c=0; $v.= substr($str,$i,1) ^ substr($r,$c,1); $c++; } return $v; }}

 

转载于:https://www.cnblogs.com/yudis/articles/6056959.html

你可能感兴趣的文章
[BZOJ2963][JLOI2011]飞行路线 分层图+spfa
查看>>
setsockopt 设置socket 详细用法
查看>>
JavaScript逻辑运算符 三元表达式
查看>>
用户和角色:通用权限管理系统数据库表结构如何设计?
查看>>
安装pytorch0.4.0
查看>>
做rl_abs过程中遇到的问题
查看>>
spring多模块项目手动整合
查看>>
SpringMVC中文件的上传(上传到服务器)和下载问题(一)--------上传
查看>>
HashMap详解
查看>>
使用IntelliJ IDEA 13搭建Android集成开发环境(图文教程)
查看>>
6.24 AppCan移动开发者大会:议程重大更新,报名即将关闭
查看>>
java范型集合中的成员排序
查看>>
在.net中读写config文件的各种方法(自定义config节点)
查看>>
ZOJ Problem Set - 2165 Red and Black
查看>>
Qt 程序运行图标
查看>>
matlab Cplex使用
查看>>
(转)[unity3d]easytouch的使用
查看>>
Pascal's Travels
查看>>
Microsoft 家族新成员 Datazen 移动BI 介绍
查看>>
linq to entity GroupBy多个字段
查看>>