一组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脚本的10个技巧(6)
Oct 09 PHP
QueryPath PHP 中的jQuery
Apr 11 PHP
php中拷贝构造函数、赋值运算符重载
Jul 25 PHP
深入解析php之apc
May 15 PHP
php中自定义函数dump查看数组信息类似var_dump
Jan 27 PHP
PHP读取txt文本文件并分页显示的方法
Mar 11 PHP
如何使用GDB调试PHP程序
Dec 08 PHP
解析WordPress中函数钩子hook的作用及基本用法
Dec 22 PHP
yii2超好用的日期组件和时间组件
May 05 PHP
php处理json格式数据经典案例总结
May 19 PHP
php中时间函数date及常用的时间计算
May 12 PHP
Laravel 实现在Blade模版中使用全局变量代替路径的例子
Oct 22 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新手上路(十二)
2006/10/09 PHP
解决phpmyadmin 乱码,支持gb2312和utf-8
2006/11/20 PHP
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
php使用ob_start()实现图片存入变量的方法
2014/11/14 PHP
php结合安卓客户端实现查询交互实例
2015/05/05 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
js控制frameSet示例
2013/09/10 Javascript
jquery mobile changepage的三种传参方法介绍
2013/09/13 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
javascript冒泡排序小结
2016/04/10 Javascript
angular中实现控制器之间传递参数的方式
2017/04/24 Javascript
JavaScript制作简单的框选图表
2017/05/15 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
浅析我对JS延迟异步脚本的思考
2020/10/12 Javascript
Python 可爱的大小写
2008/09/06 Python
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
Python中asyncore异步模块的用法及实现httpclient的实例
2016/06/28 Python
python实现的二叉树定义与遍历算法实例
2017/06/30 Python
在Python中如何传递任意数量的实参的示例代码
2019/03/21 Python
python将字典列表导出为Excel文件的方法
2019/09/02 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
浅谈python处理json和redis hash的坑
2020/07/16 Python
巴西男士个人护理产品商店:SHOP4MEN
2017/08/07 全球购物
Ooni英国官网:披萨烤箱
2020/05/31 全球购物
介绍一下Linux文件的记录形式
2013/09/29 面试题
英语专业个人求职自荐信
2013/09/21 职场文书
火锅店创业计划书范文
2014/02/02 职场文书
地道战观后感2000字
2015/06/04 职场文书
SQL中的三种去重方法小结
2021/11/01 SQL Server
TV动画《八十龟酱观察日记》第四季宣传PV公布
2022/04/06 日漫
SpringCloud项目如何解决log4j2漏洞
2022/04/10 Java/Android
Vue OpenLayer测距功能的实现
2022/04/20 Vue.js