一组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+MYSQL的文章管理系统(二)
Oct 09 PHP
PHP+Mysql+jQuery实现发布微博程序 jQuery篇
Oct 08 PHP
探讨php define()函数及defined()函数使用详解
Jun 09 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
Jun 17 PHP
php实现的Captcha验证码类实例
Sep 22 PHP
ThinkPHP中RBAC类的四种用法分析
Nov 24 PHP
phpcms中的评论样式修改方法
Oct 21 PHP
PHP不使用递归的无限级分类简单实例
Nov 05 PHP
PHP编程实现的TCP服务端和客户端功能示例
Apr 13 PHP
Yii框架核心组件类实例详解
Aug 06 PHP
PHP上传图片到数据库并显示的实例代码
Dec 20 PHP
php的lavarel框架中join和orWhere的用法
Dec 28 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中与数组相关的函数
2007/03/22 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
2013/12/25 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
2015/04/03 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
使用js写的一个简易的投票
2013/11/27 Javascript
ExpressJS入门实例
2015/01/14 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
2015/12/02 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
jQuery弹出窗口打开链接的实现代码
2016/12/24 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
2016/12/24 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
2018/04/26 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
2019/08/15 Javascript
java和js实现的洗牌小程序
2019/09/30 Javascript
layui数据表格重载实现往后台传参
2019/11/15 Javascript
Vue 修改网站图标的方法
2020/12/31 Vue.js
python求众数问题实例
2014/09/26 Python
Python中if __name__ == &quot;__main__&quot;详细解释
2014/10/21 Python
Python优化技巧之利用ctypes提高执行速度
2016/09/11 Python
Python编程深度学习计算库之numpy
2018/12/28 Python
Python常见数据类型转换操作示例
2019/05/08 Python
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
python分割一个文本为多个文本的方法
2019/07/22 Python
Python基于yield遍历多个可迭代对象
2020/03/12 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
Python多线程的退出控制实现
2020/08/10 Python
Python爬虫+Tkinter制作一个翻译软件的示例
2021/02/20 Python
经理秘书岗位职责
2013/11/14 职场文书
房展策划方案
2014/06/07 职场文书
法学专业毕业实习自我鉴定2014
2014/09/27 职场文书
无财产离婚协议书范本
2014/10/28 职场文书
2016拓展训练心得体会范文
2016/01/12 职场文书
入党转正申请自我鉴定
2019/06/25 职场文书
Vue3中toRef与toRefs的区别
2022/03/24 Vue.js
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android