目录
经典PHP加密解密函数Authcode()修复版代码,加密解密authcode
首页 后端开发 php教程 经典PHP加密解密函数Authcode()修复版代码,加密解密authcode_PHP教程

经典PHP加密解密函数Authcode()修复版代码,加密解密authcode_PHP教程

Jul 13, 2016 am 09:58 AM
php加密解密 加密解密

经典PHP加密解密函数Authcode()修复版代码,加密解密authcode

Authcode这个函数很多人都使用,这函数来自Discuz程序,用于加密解密字符串,可以设置钥匙(key)和过期时间,在很多时候都用得着。原版的函数代码可能会生成+、/、&这样的字符,导致通过URL传值取回时被转义,导致无法解密。火端网络稍加修改,把这几个字符替换成其它字符,解密时再替换回去,这样就完美了!

代码如下:

function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0){
 
 if($operation == 'DECODE') {
 $string = str_replace('[a]','+',$string);
 $string = str_replace('[b]','&',$string);
 $string = str_replace('[c]','/',$string);
 }
 $ckey_length = 4;
 $key = md5($key ? $key : 'livcmsencryption ');
 $keya = md5(substr($key, 0, 16));
 $keyb = md5(substr($key, 16, 16));
 $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';
 $cryptkey = $keya.md5($keya.$keyc);
 $key_length = strlen($cryptkey);
 $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
 $string_length = strlen($string);
 $result = '';
 $box = range(0, 255);
 $rndkey = array();
 for($i = 0; $i <= 255; $i++) {
  $rndkey[$i] = ord($cryptkey[$i % $key_length]);
 }
 for($j = $i = 0; $i < 256; $i++) {
  $j = ($j + $box[$i] + $rndkey[$i]) % 256;
  $tmp = $box[$i];
  $box[$i] = $box[$j];
  $box[$j] = $tmp;
 }
 for($a = $j = $i = 0; $i < $string_length; $i++) {
  $a = ($a + 1) % 256;
  $j = ($j + $box[$a]) % 256;
  $tmp = $box[$a];
  $box[$a] = $box[$j];
  $box[$j] = $tmp;
  $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
 }
 if($operation == 'DECODE') {
  if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {
 
   return substr($result, 26);
  } else {
   return '';
  }
 } else {
 $ustr = $keyc.str_replace('=', '', base64_encode($result));
 $ustr = str_replace('+','[a]',$ustr);
 $ustr = str_replace('&','[b]',$ustr);
 $ustr = str_replace('/','[c]',$ustr);
  return $ustr;
 }
}
登录后复制

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/979705.htmlTechArticle经典PHP加密解密函数Authcode()修复版代码,加密解密authcode Authcode这个函数很多人都使用,这函数来自Discuz程序,用于加密解密字符串,可以...
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

使用 React Query 和数据库进行数据加密和解密 使用 React Query 和数据库进行数据加密和解密 Sep 26, 2023 pm 12:53 PM

标题:使用ReactQuery和数据库进行数据加密和解密简介:本文将介绍如何使用ReactQuery和数据库进行数据加密和解密。我们将使用ReactQuery作为数据管理库,并结合数据库进行数据的加密和解密操作。通过结合这两个技术,我们可以安全地存储和传输敏感数据,并在需要时进行加密和解密操作,保证数据的安全性。正文:一、ReactQue

微信小程序中PHP开发的加密和解密实现方法 微信小程序中PHP开发的加密和解密实现方法 Jun 01, 2023 am 08:12 AM

随着微信小程序在移动应用市场中越来越流行,它的开发也受到越来越多的关注。在小程序中,PHP作为一种常用的后端语言,经常用于处理敏感数据的加密和解密。本文将介绍在微信小程序中如何使用PHP实现加密和解密。一、什么是加密和解密?加密是将敏感数据转换为不可读的形式,以确保数据在传输过程中不被窃取或篡改。解密是将加密数据还原为原始数据。在小程序中,加密和解密通常包括

Win11加密功能怎么添加到右键菜单? Win11加密解密右键快捷添加方法 Win11加密功能怎么添加到右键菜单? Win11加密解密右键快捷添加方法 Jan 07, 2024 am 08:45 AM

这篇文章是本站给大家分享的在不使用第三方加解密工具情况下对文件进行加解密方法,Win11右键菜单添加加密解密方法教程,由于需要修改注册表,大家一定要做好备份再进行操作。1、首先,按键盘上的【Win+R】组合键,打开运行,然后输入【regedit】命令,按【确定或回车】可以打开注册表编辑器;2、用户账户控制窗口,你要允许此应用对你的设备进行更改吗?点击【是】;3、注册表编辑器窗口,依次展开到以下路径:HKEY_CURRENT_USER\Software\Microsoft\Windows\Curr

使用Yii框架中间件加密和解密敏感数据 使用Yii框架中间件加密和解密敏感数据 Jul 28, 2023 pm 07:12 PM

使用Yii框架中间件加密和解密敏感数据引言:在现代的互联网应用中,隐私和数据安全是非常重要的问题。为了确保用户的敏感数据不被未经授权的访问者获取,我们需要对这些数据进行加密。Yii框架为我们提供了一种简单且有效的方法来实现加密和解密敏感数据的功能。在本文中,我们将介绍如何使用Yii框架的中间件来实现这一目标。Yii框架简介Yii框架是一个高性能的PHP框架,

PHP 邮箱开发:实现邮件的加密和解密功能 PHP 邮箱开发:实现邮件的加密和解密功能 Sep 12, 2023 am 10:40 AM

PHP邮箱开发:实现邮件的加密和解密功能随着信息传递的日益发达,电子邮件已成为人们重要的沟通方式之一。然而,随之而来的安全问题也逐渐引起人们的关注。为了保护邮件的安全性,加密和解密成为了发送和接收邮件的重要环节。本文将介绍如何使用PHP开发邮件加密和解密功能,提高电子邮件的安全性。一、加密的原理和作用邮件加密是将邮件内容使用特定的算法进行转换,使得除了收件

Java 函数库中都有哪些常用加密解密工具? Java 函数库中都有哪些常用加密解密工具? May 05, 2024 am 08:54 AM

Java函数库提供了丰富的加密解密工具,包括JCE、JCA、ApacheCommonsCrypt等。JCE提供了加密算法和功能,JCA提供接口访问加密服务提供者,ApacheCommonsCrypt包含更多加密算法和工具。实战案例展示了如何使用JCE对文本进行AES加密,生成Base64编码的密文。

php加密解密的方法有哪些 php加密解密的方法有哪些 Feb 23, 2024 pm 03:09 PM

PHP加密解密的方法有哪些,需要具体代码示例随着网络技术的不断发展,数据的安全性愈发受到关注。在Web开发过程中,处理和保护用户的敏感信息是必不可少的一环。PHP作为一种广泛应用于Web开发的脚本语言,在数据加密和解密方面提供了多种方法。下面将介绍几种常用的加密解密方法,并提供相应的代码示例。一、对称加密对称加密算法使用相同的密钥进行加密和解密。常见的对称加

如何利用Go的SectionReader模块实现文件指定部分的内容加密与解密? 如何利用Go的SectionReader模块实现文件指定部分的内容加密与解密? Jul 23, 2023 am 08:24 AM

如何利用Go的SectionReader模块实现文件指定部分的内容加密与解密?引言:在开发中,文件的内容加密与解密是一个很常见的需求。Go语言提供了丰富的库和模块来满足这一需求。其中,SectionReader是一个非常实用的模块,它可以让我们在一个大文件中指定内容的范围,并进行读取、加密和解密操作。本文将介绍如何使用Go的SectionReader模块来实

See all articles