/**

* 字符串加密、解密函数

* @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. 在神经网络中使用dropout
  2. python plot设置坐标轴_python matplotlib坐标轴设置的方法
  3. LeetCode 1962. 移除石子使总数最小(优先队列)
  4. 拉普拉斯定理_拉普拉斯妖:通晓宇宙一切,深知过去未来,最终被量子力学终结!...
  5. 解决pip2安装不成功的问题
  6. 【HDU6051】if the starlight never fade
  7. 从CVPR2019 看计算机视觉最新趋势
  8. 测试开发工程师简历模版
  9. 简单工厂模式、工厂模式、抽象工厂模式
  10. 萝卜青菜各有所爱------console系列详解
  11. C语言入门 -- Simple Simon 简单的西蒙游戏(2021/1/7)
  12. ENSP中ACL,NAT配置
  13. 嵌入式设备固件代码升级流程及总结。
  14. 解决双硬盘下一个windows两个linux操作系统的grub引导问题
  15. 【中等】Leetcode-旋转链表//题目分析//首尾相连
  16. IDM下载慢 没有权限下载如何解决?
  17. 笔记:TRULY_SPINACH(优酷播单:和我一起用Unity3D玩游戏)
  18. matlab 呼吸灯,STM32的呼吸灯.doc
  19. Java爬虫html解析-Jsoup(绿盟极光报告)
  20. MySQL简介及安装教程

热门文章

  1. java中utilities类_Java SwingUtilities类
  2. pandas df中有几个数组_还在抱怨pandas运行速度慢?这几个方法会颠覆你的看法
  3. A1075[PAT JUDGE] 好题
  4. mysql 转字符串 blob_BLOB转换为字符串或图像/ PHP或SQL
  5. 飞翔 nyoj195(贪心or 动态)
  6. android音乐播放功能,Android开发中如何实现一个音乐播放器功能
  7. php 支持泛型,PHP对Java样式类的泛型有答案吗?
  8. SLAM--BA优化
  9. Facebook算法swift实现
  10. linux运维实战centos7.6,centos7新特性6