一组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中实现图片的锐化
Oct 09 PHP
攻克CakePHP系列二 表单数据显示
Oct 22 PHP
PHP错误和异长常处理总结
Mar 06 PHP
利用php下载xls文件(自己动手写的)
Apr 18 PHP
PHP多文件上传类实例
Mar 07 PHP
php访问数组最后一个元素的函数end()用法
Mar 18 PHP
iOS自定义提示弹出框实现类似UIAlertView的效果
Nov 16 PHP
PHP面向对象程序设计之类与反射API详解
Dec 02 PHP
PHP实现判断数组是一维、二维或几维的方法
Feb 06 PHP
PHP单例模式定义与使用实例详解
Feb 06 PHP
PHP实现根据密码长度显示安全条
Jul 04 PHP
利用ajax+php实现商品价格计算
Mar 31 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 session处理的定制
2009/03/16 PHP
php设计模式 Strategy(策略模式)
2011/06/26 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
2011/09/25 PHP
PHP的简易冒泡法代码分享
2012/08/28 PHP
深入php 正则表达式的学习探讨
2013/06/06 PHP
smarty模板引擎从php中获取数据的方法
2015/01/22 PHP
PHP开发Apache服务器配置
2015/07/15 PHP
Yii2 rbac权限控制之rule教程详解
2016/06/23 PHP
jQuery学习基础知识小结
2010/11/25 Javascript
面向对象继承实例(a如何继承b问题)(自写)
2013/07/01 Javascript
JavaScript设计模式之单例模式实例
2014/09/24 Javascript
JavaScript设置表单上传时文件个数的方法
2015/08/11 Javascript
js代码实现无缝滚动(文字和图片)
2015/08/20 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
JS实现JSON.stringify的实例代码讲解
2017/02/07 Javascript
Angular2.js实现表单验证详解
2017/06/23 Javascript
解析vue中的$mount
2017/12/21 Javascript
在vue中封装可复用的组件方法
2018/03/01 Javascript
vue实现的树形结构加多选框示例
2019/02/02 Javascript
Vue响应式原理Observer、Dep、Watcher理解
2019/06/06 Javascript
Vue实现日历小插件
2019/06/26 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
Nodejs使用archiver-zip-encrypted库加密压缩文件时报错(解决方案)
2019/11/18 NodeJs
Vue的状态管理vuex使用方法详解
2020/02/05 Javascript
Python中的深拷贝和浅拷贝详解
2015/06/03 Python
使用C++扩展Python的功能详解
2018/01/12 Python
windows下python安装小白入门教程
2018/09/18 Python
修改Pandas的行或列的名字(重命名)
2019/12/18 Python
MNIST数据集转化为二维图片的实现示例
2020/01/10 Python
PyQt5实现登录页面
2020/05/30 Python
单位未婚证明范本
2014/11/25 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书
信息技术教研组工作总结
2015/08/13 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
MySQL库表名大小写的选择
2021/06/05 MySQL