/**

* 字符串加密、解密函数

* @param string $string 字符串

* @param string $operation ENCODE为加密,DECODE为解密,可选参数,默认为ENCODE,

* @param string $key 密钥:数字、字母、下划线

* @param int $expiry 过期时间

* @return string

*/

function str_crypt($string, $operation = "ENCODE", $key = "", $expiry = 0)

{

$key_length = 4;

$key = md5($key != "" ? $key : KEY);

$fixedkey = md5($key);

$egiskeys = md5(substr($fixedkey, 16, 16));

$runtokey = $key_length ? ($operation == "ENCODE" ? substr(md5(microtime(true)), -$key_length) : substr($string, 0, $key_length)) : "";

$keys = md5(substr($runtokey, 0, 16) . substr($fixedkey, 0, 16) . substr($runtokey, 16) . substr($fixedkey, 16));

$string = $operation == "ENCODE" ? sprintf("%010d", $expiry ? $expiry + time() : 0) . substr(md5($string . $egiskeys), 0, 16) . $string : base64_decode(substr($string, $key_length));

$result = "";

$string_length = strlen($string);

for ($i = 0; $i < $string_length; $i++) {

$result .= chr(ord($string{$i}) ^ ord($keys{$i % 32}));

}

if ($operation == "ENCODE") {

return $runtokey . str_replace("=", "", base64_encode($result));

} else {

if ((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26) . $egiskeys), 0, 16)) {

return substr($result, 26);

} else {

return "";

}

}

}

php对字符串简单加密解密,PHP字符串加密解密相关推荐

  1. java 字符串 加密_如何用JAVA实现字符串简单加密解密?

    展开全部 java加密字符串可以使用des加密算法62616964757a686964616fe4b893e5b19e31333363376462,实例如下: package test; import ...

  2. java 字符串加密_如何用JAVA实现字符串简单加密解密?

    展开全部 java加密字符串可以使用des加密算法,实例如62616964757a686964616fe59b9ee7ad9431333337616636下: package test; import ...

  3. autojs加解密,文本/字符串的加密和解密脚本源码分享

    说明 本文提供的代码仅供参考.不建议用于生产环境. 可能有些地方在最新版本的Auto.js上面需要做修改,才能运行. Auto.js简介 Auto.js是利用安卓系统的"辅助功能" ...

  4. 【C语言】字符串加密解密,字符串左旋,杨氏矩阵,删除字符串中出现次数最少的字符

    目录 1.字符串解密加密 2.字符串左旋 3.杨氏矩阵 4.删除字符串中出现次数最少的字符 好久不见,自从刷完剑指offer里面所有目前可以用C解决的题目吧之后,就在刷一些高校的题和华为机试题,一直在 ...

  5. C#加密解密DES字符串转

    using System; using System.Collections.Generic; using System.Text; using System.Security.Cryptograph ...

  6. java 字符串加密 解密_java字符串加密解密

    java字符串加密解密 try { String test = "123456789@fdj.com"; EncryptionDecryption des = new Encryp ...

  7. php 字符串缩短 解密,PHP的加密解密字符串函数

    程序中经常使用的PHP加密解密字符串函数 /********************************************************************* 函数名称:enc ...

  8. 加密解密(字符串处理)

    标题:加密解密     Playfair密码由英国人发明,它使用方便而且可以让频度分析法失效,直到一战中才被破译.     其一变种方法如下:首先选择一个密钥单词(称为pair)(剔除重复字母,且都为 ...

  9. 简单移位密码——凯撒加密、解密算法

    简单移位密码--凯撒加密.解密算法 移位密码是简单的替换密码(simple substitution cipher),即将明文的一个字符用相应的一个密文字符替换. 算法描述:设P=C=K=Z26,对k ...

  10. php md5加密成字符串,如何使用php进行字符串的md5加密

    MD5是什么? MD5是一种信息摘要算法,它可以从一个字符串或一个文件中按照一定的规则生成一个特殊的字符串,并且一个文件所对应的MD5摘要是固定的,当文件内容变化后,其MD5值也会不一样,当然,它的过 ...

最新文章

  1. JSON API免费接口
  2. 细说websocket快速重连机制
  3. 解决Git中fatal: refusing to merge unrelated histories(亲测)
  4. react当中子组件改变父组件的状态
  5. XidianOJ 1176 ship
  6. php修改音频文件_php获取mp3文件信息时长修改
  7. ASTreeView 1.4.0发布(ASP.NET树控件)
  8. 【Siddhi 5】Siddhi 5 源码编译
  9. 图解TCPIP-IP 网际协议-IP包
  10. 使用xml文件存储数据使用xpath查询
  11. android 卡片收缩展开,jQuery和CSS3炫酷堆叠卡片展开和收缩特效
  12. Linux中tty框架与uart框架之间的调用关系剖析
  13. Java实现18位身份证号码的校验码计算校验
  14. jdk、jre各版本下载
  15. linux权限百度贴吧,api接口权限控制
  16. matlab 对角线相加,求和、转置和对角线 - MATLAB 系统中文帮助手册
  17. TSL2591STM32固件库开发
  18. 前端开发3年计划,前端应届生如何做一个职业规划
  19. 性能测试中的服务器数据监控
  20. 区块链调研备份8.1

热门文章

  1. python重装显示already installed_tensorflow安装出现Requirement already satisfied问题,这个是网络问题吗?...
  2. plsql登录空白框_王者荣耀空白居中以及重复名的教程[含软件]
  3. sql limit不接具体数字_MySQL的Limit 性能差?真的不能再用了?
  4. NYOJ 972 核桃的数量(蓝桥杯)
  5. 【clion】实现类似自定义代码自动补全的功能(懒人利器)
  6. 2数据库表增加一个字段_详解PostgreSQL用户、数据库及表的管理、操作与授权
  7. 信用评分卡 (part 3of 7)
  8. controlleradvice 参数_Spring mvc中@ModelAttribute和@ControllerAdvice使用
  9. OpenCV : 投影变换
  10. 阿里云云计算 20 在线实验--块存储的使用