一组PHP加密解密函数分享


Posted in PHP onJune 05, 2014
<?php
/**
*功能:对字符串进行加密处理
*参数一:需要加密的内容
*参数二:密钥
*/
function passport_encrypt($str,$key){ //加密函数
srand((double)microtime() * 1000000);
$encrypt_key=md5(rand(0, 32000));
$ctr=0;
$tmp='';
for($i=0;$i<strlen($str);$i++){
$ctr=$ctr==strlen($encrypt_key)?0:$ctr;
$tmp.=$encrypt_key[$ctr].($str[$i] ^ $encrypt_key[$ctr++]);
}
return base64_encode(passport_key($tmp,$key));
}
/**
*功能:对字符串进行解密处理
*参数一:需要解密的密文
*参数二:密钥
*/
function passport_decrypt($str,$key){ //解密函数
$str=passport_key(base64_decode($str),$key);
$tmp='';
for($i=0;$i<strlen($str);$i++){
$md5=$str[$i];
$tmp.=$str[++$i] ^ $md5;
}
return $tmp;
}
/**
*辅助函数
*/
function passport_key($str,$encrypt_key){
$encrypt_key=md5($encrypt_key);
$ctr=0;
$tmp='';
for($i=0;$i<strlen($str);$i++){
$ctr=$ctr==strlen($encrypt_key)?0:$ctr;
$tmp.=$str[$i] ^ $encrypt_key[$ctr++];
}
return $tmp;
}
$str='作者:WWW.JB51.NET;
$key='jb51net';
$encrypt=passport_encrypt($str,$key);
$decrypt=passport_decrypt($encrypt,$key);
echo '原文:',$str."<br><hr>";
echo '密文:',$encrypt."<br><hr>";
echo '译文:',$decrypt."<br><hr>";
?>
PHP 相关文章推荐
PHP+JS无限级可伸缩菜单详解(简单易懂)
Jan 02 PHP
安装APACHE
Jan 15 PHP
用PHP进行MySQL删除记录操作代码
Jun 07 PHP
php HtmlReplace输入过滤安全函数
Jul 03 PHP
PHP错误和异长常处理总结
Mar 06 PHP
thinkphp数据查询和遍历数组实例
Nov 28 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
Mar 19 PHP
php实现求相对时间函数
Jun 15 PHP
php metaphone()函数及php localeconv() 函数实例解析
May 15 PHP
关于php几种字符串连接的效率比较(详解)
Feb 22 PHP
Laravel5框架自定义错误页面配置操作示例
Apr 17 PHP
laravel 自定义常量的两种方案
Oct 14 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
Jun 05 #PHP
php 购物车完整实现代码
Jun 05 #PHP
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
Jun 04 #PHP
浅谈PHP调用Webservice思路及源码分享
Jun 04 #PHP
利用谷歌 Translate API制作自己的翻译脚本
Jun 04 #PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
Jun 04 #PHP
PHP 如何获取二维数组中某个key的集合
Jun 03 #PHP
You might like
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
PHP中PDO的错误处理
2011/09/04 PHP
CURL状态码列表(详细)
2013/06/27 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
2014/11/12 PHP
php自定义类fsocket模拟post或get请求的方法
2015/07/31 PHP
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
PHP实现的XXTEA加密解密算法示例
2018/08/28 PHP
js继承 Base类的源码解析
2008/12/30 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
详解webpack+angular2开发环境搭建
2017/06/28 Javascript
AngularJS 多指令Scope问题的解决
2018/10/25 Javascript
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
Javascript节流函数throttle和防抖函数debounce
2020/12/03 Javascript
[05:01]3.19DOTA2发布会 我们都是刀塔人
2014/03/25 DOTA
[01:59]深扒TI7聊天轮盘语音出处 1
2017/05/11 DOTA
[44:58]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第二场
2018/04/06 DOTA
Python常用内置函数总结
2015/02/08 Python
老生常谈python的私有公有属性(必看篇)
2017/06/09 Python
通过pykafka接收Kafka消息队列的方法
2018/12/27 Python
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
使用python实现滑动验证码功能
2019/08/05 Python
Python range与enumerate函数区别解析
2020/02/28 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
CSS3实现的渐变幻灯片效果
2020/12/07 HTML / CSS
如何获取某个日期是当月的最后一天
2013/12/05 面试题
终端业务员岗位职责
2013/11/27 职场文书
爱牙日活动总结
2014/08/29 职场文书
党员十八大心得体会
2014/09/12 职场文书
工商局局长个人对照检查材料思想汇报
2014/09/23 职场文书
委托公证书样本
2015/01/23 职场文书
党员廉洁自律个人总结
2015/02/13 职场文书
教师节校长致辞
2015/07/31 职场文书