一组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中删除变量时unset()和null的区别分析
Jan 27 PHP
php Rename 更改文件、文件夹名称
May 24 PHP
通过dbi使用perl连接mysql数据库的方法
Apr 16 PHP
php smarty模板引擎的6个小技巧
Apr 24 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
Jul 15 PHP
php去除html标记的原生函数详解
Jan 27 PHP
PHP文件缓存smarty模板应用实例分析
Feb 26 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
Jun 21 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
Sep 11 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
Dec 21 PHP
php面向对象重点知识分享
Sep 27 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
Oct 15 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 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
2009/01/30 PHP
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
PHP 显示客户端IP与服务器IP的代码
2010/10/12 PHP
VPS中使用LNMP安装WordPress教程
2014/12/28 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
2020/05/27 PHP
PHP并发场景的三种解决方案代码实例
2021/02/27 PHP
javascript之解决IE下不渲染的bug
2007/06/29 Javascript
JavaScript 继承详解 第一篇
2009/08/30 Javascript
JavaScript的parseInt 取整使用
2011/05/09 Javascript
javascript继承之为什么要继承
2012/11/10 Javascript
JS弹出层的显示与隐藏示例代码
2013/12/27 Javascript
浅谈javascript中字符串String与数组Array
2014/12/31 Javascript
详解jQuery Mobile自定义标签
2016/01/06 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
轻松掌握JavaScript装饰者模式
2016/08/27 Javascript
Vue刷新修改页面中数据的方法
2018/09/16 Javascript
vue中实现上传文件给后台实例详解
2019/08/22 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】
2020/03/06 Javascript
[01:05:32]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第一局
2016/03/04 DOTA
基于Django用户认证系统详解
2018/02/21 Python
python实现俄罗斯方块
2018/06/26 Python
浅析python redis的连接及相关操作
2019/11/07 Python
Python ini文件常用操作方法解析
2020/04/26 Python
keras 自定义loss层+接受输入实例
2020/06/28 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
python如何对链表操作
2020/10/10 Python
某公司的.net工程师面试题笔试题
2013/11/22 面试题
人力资源管理专业学生自我评价
2013/11/20 职场文书
《姥姥的剪纸》教学反思
2014/02/25 职场文书
元旦寄语大全
2014/04/10 职场文书
幼师求职自荐信
2014/05/31 职场文书
优秀员工评优方案
2014/06/13 职场文书
简历中的自我评价怎么写呢?
2019/04/30 职场文书
python编程简单几行代码实现视频转换Gif示例
2021/10/05 Python