一组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 相关文章推荐
支持oicq头像的留言簿(一)
Oct 09 PHP
PHP 递归效率分析
Nov 24 PHP
PHP抓屏函数实现屏幕快照代码分享
Jan 02 PHP
PHP父类调用子类方法的代码例子
Apr 09 PHP
thinkphp实现上一篇与下一篇的方法
Dec 08 PHP
php+xml实现在线英文词典之添加词条的方法
Jan 23 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
Nov 10 PHP
php图片裁剪函数
Oct 31 PHP
PHP attributes()函数讲解
Feb 03 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
Mar 11 PHP
php+ajax实现商品对比功能示例
Apr 13 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
Aug 03 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
PHP生成excel时单元格内换行问题的解决方法
2010/08/26 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
2016/12/25 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
JavaScript中的property和attribute介绍
2011/12/26 Javascript
js substr支持中文截取函数代码(中文是双字节)
2013/04/17 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
用js实现table单元格高宽调整,兼容合并单元格(兼容IE6、7、8、FF)实例
2013/06/25 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
css+js实现部分区域高亮可编辑遮罩层
2014/03/04 Javascript
thinkphp 表名 大小写 窍门
2015/02/01 Javascript
jQuery实现可用于博客的动态滑动菜单
2015/03/09 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
2017/05/03 Javascript
vue数据双向绑定的注意点
2017/06/23 Javascript
基于Vuejs和Element的注册插件的编写方法
2017/07/03 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
2017/10/20 Javascript
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
vue项目关闭eslint校验
2018/03/21 Javascript
JS实现关键词高亮显示正则匹配
2018/06/22 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
利用js-cookie实现前端设置缓存数据定时失效
2019/06/18 Javascript
javascript实现移动端红包雨页面
2020/06/23 Javascript
VUE实现吸底按钮
2021/03/04 Vue.js
Python的Django框架中的数据库配置指南
2015/07/17 Python
Python OpenCV 直方图的计算与显示的方法示例
2018/02/08 Python
python 寻找list中最大元素对应的索引方法
2018/06/28 Python
Python猜数字算法题详解
2020/03/01 Python
Python中常见的数制转换有哪些
2020/05/27 Python
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
斯洛伐克家具和时尚装饰品购物网站:Butlers.sk
2019/09/08 全球购物
全球工业:Global Industrial
2020/02/01 全球购物
这76道Java面试题及答案,祝你能成功通过面试
2016/04/16 面试题
2014群众路线学习笔记
2014/11/06 职场文书
党员干部公开承诺书范文
2015/04/27 职场文书
Python中相见恨晚的技巧
2021/04/13 Python