php字符串常用算法--字符串加密解密
2014-11-25 16:12
197 查看
/** * 加密、解密字符串 * * @global string $db_hash * @global array $pwServer * @param $string 待处理字符串 * @param $action 操作,ENCODE|DECODE * @return string */ function StrCode($string, $action = 'ENCODE') { $action != 'ENCODE' && $string = base64_decode($string); $code = ''; $key = substr(md5($_SERVER['HTTP_USER_AGENT']), 8, 18); $keyLen = strlen($key); $strLen = strlen($string); for ($i = 0; $i < $strLen; $i++) { $k = $i % $keyLen; $code .= $string[$i] ^ $key[$k]; } return ($action != 'DECODE' ? base64_encode($code) : $code); } /* * ENCODE为加密,DECODE为解密 * 加密就是把字符串的每个字符进行^运算,生成新字符串再base64一下返回。 * 用来进行^运算的字符串通过MD5一些全局变量再substr获得。 * * 这里注意,^运算必须是2个长度相同的字符串才不会产生掉串, * 例如:'asd'^'123' == 'PAW',但是'asd'^'123456'还是等于'PAW',多余的字符掉了, * 并且不知道传入的字符串到底是多长,因此生成^运算的字符串也不知道要生成多长, * 这里用循环的方式进行处理,即^运算的字符串可以是任意长度,然后要加密的字符串用第一个字符与^运算的字符串的第一个字符进行与运算, * 以此类推,当^运算的字符长度不够时就循环使用,上边的for循环里边的取%运算就是这个道理。 */
相关文章推荐
- PHP 中英文混合排版中处理字符串常用的函数
- 基于PHP常用字符串的总结(待续)
- php常用算法总结
- PHP中常用的字符串操作【转】
- 我学PHP整理的数组与字符串常用函数
- 获取两个字符串之间最长公共字符串的算法(PHP)
- php常用的几个算法
- PHP常用字符串正则替换及剖分函数比较
- PHP 查找字符串常用函数介绍
- 字符串转换为整数的常用算法
- PHP常用字符串处理函数与ASP对照
- java中类似php md5的算法,可以取得文件,字符串和输入流的md5值
- php常用的几个算法
- PHP开发中常用的字符串操作函数
- PHP 中英文混合排版中处理字符串常用的函数
- php字符串常用函数
- PHP字符串(1):常用字符串操作函数汇总
- PHP 常用字符串处理代码片段
- PHP 查找字符串常用函数介绍
- php 字符串拼音首字母(支持数字,英文,常用汉字)