一组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初学者最感迷茫的问题小结
Mar 27 PHP
PHP STRING 陷阱原理说明
Jul 24 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
Jun 06 PHP
如何用C语言编写PHP扩展的详解
Jun 13 PHP
PHP面向对象精要总结
Nov 07 PHP
php相对当前文件include其它文件的方法
Mar 13 PHP
php编写的抽奖程序中奖概率算法
May 14 PHP
php去掉文件前几行的方法
Jul 29 PHP
PHP使用file_get_content设置头信息的方法
Feb 14 PHP
利用PHP绘图函数实现简单验证码功能的方法
Oct 18 PHP
基于 Swoole 的微信扫码登录功能实现代码
Jan 15 PHP
php遍历目录下文件并按修改时间排序操作示例
Jul 12 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 字符串 小常识
2009/06/05 PHP
codeigniter中测试通过的分页类示例
2014/04/17 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
2014/08/21 PHP
YII Framework框架教程之安全方案详解
2016/03/14 PHP
js获取变量
2006/08/24 Javascript
图片img的src不变让浏览器重新加载实现方法
2013/03/29 Javascript
js 显示base64编码的二进制流网页图片
2014/04/04 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
jquery实现清新实用的网页菜单效果
2015/08/28 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
bootstrap IE8 兼容性处理
2017/03/22 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
2017/05/08 Javascript
jquery ztree实现右键收藏功能
2017/11/20 jQuery
jquery插件开发模式实例详解
2019/07/20 jQuery
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
将Emacs打造成强大的Python代码编辑工具
2015/11/20 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
Python寻找两个有序数组的中位数实例详解
2018/12/05 Python
利用python实现在微信群刷屏的方法
2019/02/21 Python
python的time模块和datetime模块实例解析
2019/11/29 Python
爬虫代理池Python3WebSpider源代码测试过程解析
2019/12/20 Python
将pytorch转成longtensor的简单方法
2020/02/18 Python
利用python批量爬取百度任意类别的图片的实现方法
2020/10/07 Python
CSS3 重置iphone浏览器按钮input,select等表单元素的默认样式
2014/10/11 HTML / CSS
HTML5 Canvas API中drawImage()方法的使用实例
2016/03/25 HTML / CSS
Roxy荷兰官方网站:冲浪、滑雪板、服装和配件
2019/10/22 全球购物
行政主管岗位职责
2013/11/18 职场文书
安全横幅标语
2014/06/09 职场文书
党员评议表自我评价范文
2014/10/20 职场文书
表扬稿范文
2015/01/17 职场文书
安全生产先进个人总结
2015/02/15 职场文书
2015年教师教学工作总结
2015/04/28 职场文书
校园安全主题班会
2015/08/12 职场文书
浅谈Python数学建模之固定费用问题
2021/06/23 Python
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL