<?
define('UC_KEY','finger'); //定义密钥
$str = '杜川';
$a = authcode($str, 'ENCODE'); //加密
echo '密文:'.$a;
$b = authcode($a, 'DECODE',$UC_KEY); //解密
echo '原文:'.$b;
/**
* 字符串解密加密
* @param string $string 原文或者加密后的密文
* @param string $operation 默认DECODE 为解密,其他加密
* @param string $key 密钥
* @param int $expiry 加密有效期 0为永不过期 单位秒
* @return string 加密的密文 或者解密的原文
*/
function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {
$ckey_length = 4; // 随机密钥长度 取值 0-32;
// 加入随机密钥,可以令密文无任何规律,即便是原文和密钥完全相同,加密结果也会每次不同,增大破解难度。
// 取值越大,密文变动规律越大,密文变化 = 16 的 $ckey_length 次方
// 当此值为 0 时,则不产生随机密钥
$key = md5($key ? $key : UC_KEY);//UC_KEY 为加密密钥 此为UcHome 中的代码,没有修改
$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 {
return $keyc.str_replace('=', '', base64_encode($result));
}
}
?>
分享到:
相关推荐
php 加密 解密 函数php 加密 解密 函数php 加密 解密 函数php 加密 解密 函数
本主题将深入探讨“PHP加密解密处理类”的相关知识点,旨在帮助开发者理解和应用这一技术。 PHP作为一种广泛使用的服务器端脚本语言,提供了多种加密和解密方法,以保护敏感数据,如用户密码、API密钥或交易信息。...
介绍一个比较齐全的php加密解密功能类。 加密过程: 读取源文件,base64_encode进行加密,利用混排得到的52个大小写字母作为秘钥进行替换 $c=strtr(密文,对应待替换的字母,要替换成的字母); 将两个...
共六种PHP加解密方法, 其中包含非常给力的authcode加密函数,...第六种 函数encrypt($string,$operation,$key)中$string:需要加密解密的字符串;$operation:判断是加密还是解密,E表示加密,D表示解密;$key:密匙。
通过自定义的加密函数,可再解密,加密过程需要一个关健字,这个关键字用来解密,就算是别人看到了你的解密函数但是不知道关键字是多少照样无法解密。
"最新款goto解密工具源码,PHP加密解密反编译工具"是一个针对PHP代码的安全解决方案,它允许开发者对源码进行加密,防止未经授权的访问、复制或反编译。下面我们将深入探讨这个主题,了解加密、解密以及反编译的相关...
这个"功能强大的php加密解密类"提供了一种高效且安全的方式来处理这些任务。下面,我们将详细探讨加密解密的基本概念、PHP中的加密库以及如何使用自定义类进行加密解密操作。 1. **加密解密基础** 加密是一种将...
总结,PHP加密解密涉及多种方法,从简单的哈希函数到复杂的非对称加密,开发者应根据实际需求选择合适的安全策略。同时,为了保护用户版权,开发者可以采取混淆、数字签名等手段。在实际应用中,要结合多种技术,以...
微盾PHP加密专家(PHPCodeLock)是一款优秀的 PHP 脚本加密软件,服务器端无需安装任何第三方组件,加密后的文件可运行于任何普通 PHP 环境下。 主要功能: 加密后的脚本能运行在普通 PHP 4 或者 PHP 5 环境。 你的...
本文将深入探讨“PHP.zip_DEMO_php加密_php加密解密小程序_微信小程序_微信小程序_php”这个主题,旨在为你提供关于PHP加密、解密以及它们在微信小程序中的应用的详尽知识。 首先,PHP加密是确保数据安全的重要手段...
这个名为“功能强大的php加密解密类.zip”的资源提供了一个PHP类库,专门用于加密和解密数据。这个类库可以帮助开发者确保数据在传输过程中的安全性,防止未授权访问和数据泄露。 在PHP中,加密解密通常涉及两种...
一个比较齐全的php加密解密功能类。 加密过程: 读取源文件,base64_encode进行加密,利用混排得到的52个大小写字母作为秘钥进行替换 $c=strtr(密文,对应待替换的字母,要替换成的字母); 将两个秘钥和密文链接起来...
这个"PHP加密解密实用类"压缩包提供了一系列工具,帮助开发者更方便地进行数据加密与解密操作,确保信息安全。下面我们将深入探讨PHP加密解密的相关知识点。 1. **加密算法基础** - **MD5**:Message-Digest ...
这个名为“php加密解密处理类.zip”的压缩包提供了一个PHP类库,专门用于数据的加密和解密操作。此类库对于开发者来说非常实用,它可以帮助我们保护存储在数据库或者传输过程中的数据不被非法访问或篡改。 首先,...
以上就是关于PHP和thinkPHP自定义加密解密的基本知识。为了提高系统的安全性,还应该考虑使用非对称加密(如RSA)和哈希加盐等技术,以及定期更新加密算法和密钥策略。同时,对于存储敏感信息的数据库,应使用预处理...
首先,我们来了解一下PHP加密解密的基本概念。加密是将明文数据转化为不可读的密文,以保护数据的安全;而解密则是将密文还原为原始明文的过程。在PHP中,有多种加密解密方法可供选择,如MD5、SHA系列、AES(高级...
下面我们将深入探讨`goto`在PHP中的使用、加密解密的概念以及如何结合`goto`实现相关功能。 1. `goto` 语句: PHP中的`goto`语句始于PHP 5.3版本,其语法结构为 `goto label;`。`label`是程序员定义的一个标识符,...
PHP加密解密,适合给做程序的人员提供PHP类型的加密解密帮助
这个名为“php加密解密实用类”的压缩包提供了一组预封装的类,帮助开发者实现数据的加密与解密功能,确保信息的安全存储和传输。下面我们将深入探讨这些类库的核心知识点。 1. **加密算法** - **AES(Advanced ...
本文将深入探讨标题中提到的"一个PHP加密解密的类",以及描述中提到的"密文有效期"的概念。 首先,让我们理解PHP加密解密的基本概念。加密是将明文信息转化为无法被轻易理解的密文的过程,通常通过使用特定的算法...