一组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
杏林同学录(四)
Oct 09 PHP
NOD32 v2.70.32 简体中文封装版 提供下载了
Feb 27 PHP
Windows PHP5和Apache的安装与配置
Jun 08 PHP
深入PHP autoload机制的详解
Jun 09 PHP
探讨:array2xml和xml2array以及xml与array的互相转化
Jun 24 PHP
php格式化日期实例分析
Nov 12 PHP
Yii2超好用的日期和时间组件(值得收藏)
May 05 PHP
PHP 自动加载的简单实现(推荐)
Aug 12 PHP
thinkPHP中volist标签用法示例
Dec 06 PHP
php json转换相关知识(小结)
Dec 21 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
Oct 24 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内核学习教程之php opcode内核实现
2016/01/27 PHP
php基于websocket搭建简易聊天室实践
2016/10/24 PHP
php set_include_path函数设置 include_path 配置选项
2016/10/30 PHP
自动完成JS类(纯JS, Ajax模式)
2009/03/12 Javascript
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
JS的get和set使用示例
2014/02/20 Javascript
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
javascript实现table表格隔行变色的方法
2015/05/13 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
2016/01/26 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
vue组件发布到npm简单步骤
2017/11/30 Javascript
Vue项目中跨域问题解决方案
2018/06/05 Javascript
node.js ws模块搭建websocket服务端的方法示例
2019/04/25 Javascript
微信小程序实现左滑删除效果
2020/11/18 Javascript
javascript实现时钟动画
2020/12/03 Javascript
两个命令把 Vim 打造成 Python IDE的方法
2016/03/20 Python
python psutil库安装教程
2018/03/19 Python
Python shutil模块用法实例分析
2019/10/02 Python
利用python实现冒泡排序算法实例代码
2019/12/01 Python
浅谈PyTorch的可重复性问题(如何使实验结果可复现)
2020/02/20 Python
Python super()方法原理详解
2020/03/31 Python
Python2手动安装更新pip过程实例解析
2020/07/16 Python
django跳转页面传参的实现
2020/09/17 Python
CSS3 制作绽放的莲花采用效果叠加实现
2013/01/31 HTML / CSS
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
CLR与IL分别是什么含义
2016/08/23 面试题
英语专业毕业生自我鉴定
2013/11/09 职场文书
市场营销专业求职信
2014/06/17 职场文书
增员口号大全
2014/06/18 职场文书
护士实习自荐信
2015/03/06 职场文书
家属联谊会致辞
2015/07/31 职场文书
文明上网主题班会
2015/08/14 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python