PHP加密解密函数详解


Posted in PHP onOctober 28, 2015

分享一个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='作者:余浩苗;电话:13611972365;电子邮件:123cvbz@163.com'; 
 
$key='hacker'; 
$encrypt=passport_encrypt($str,$key); 
$decrypt=passport_decrypt($encrypt,$key); 
 
echo '原文:',$str."<br><hr>"; 
echo '密文:',$encrypt."<br><hr>"; 
echo '译文:',$decrypt."<br><hr>";

以上就是为大家分享的php加密解密函数,希望大家喜欢,可以应用到自己的学习中。

PHP 相关文章推荐
PHP第一季视频教程(李炎恢+php100 不断更新)
May 29 PHP
php中截取中文字符串的代码小结
Jul 17 PHP
通过缓存数据库结果提高PHP性能的原理介绍
Sep 05 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
Jun 20 PHP
开源php中文分词系统SCWS安装和使用实例
Apr 11 PHP
ThinkPHP的模版中调用session数据的方法
Jul 01 PHP
改写ThinkPHP的U方法使其路由下分页正常
Jul 02 PHP
php管理nginx虚拟主机shell脚本实例
Nov 19 PHP
jquery不支持toggle()高(新)版本的问题解决
Sep 24 PHP
Laravel中服务提供者和门面模式的入门介绍
Nov 06 PHP
thinkPHP框架实现多表查询的方法
Jun 14 PHP
PHP时间相关常用函数用法示例
Jun 03 PHP
php实现阳历阴历互转的方法
Oct 28 #PHP
PHP框架Laravel学习心得体会
Oct 28 #PHP
php抓取并保存网站图片的实现代码
Oct 28 #PHP
php判断当前操作系统类型
Oct 28 #PHP
详解PHP序列化反序列化的方法
Oct 27 #PHP
php使用ZipArchive函数实现文件的压缩与解压缩
Oct 27 #PHP
php常量详细解析
Oct 27 #PHP
You might like
PHP开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
2014/07/04 PHP
Yii2语言国际化自动配置详解
2018/08/22 PHP
php并发加锁问题分析与设计代码实例讲解
2021/02/26 PHP
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
jquery 笔记 事件
2011/11/02 Javascript
Javascript Ajax异步读取RSS文档具体实现
2013/12/12 Javascript
浅谈javascript中createElement事件
2014/12/05 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
Bootstrap学习笔记之js组件(4)
2016/06/12 Javascript
JS实现页面打印功能
2017/03/16 Javascript
VUE元素的隐藏和显示(v-show指令)
2017/06/23 Javascript
详解vue.js数据传递以及数据分发slot
2018/01/20 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
js 计算月/周的第一天和最后一天代码
2020/02/01 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
2020/10/27 Javascript
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
Python程序设计入门(1)基本语法简介
2014/06/13 Python
初步探究Python程序的执行原理
2015/04/11 Python
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
Python中 CSV格式清洗与转换的实例代码
2019/08/29 Python
python实现定时发送邮件到指定邮箱
2020/12/23 Python
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
美国知名保健品网站:LuckyVitamin(支持中文)
2017/08/09 全球购物
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
写出一个方法实现冒泡排序
2016/07/08 面试题
实习护理工作自我评价
2013/09/25 职场文书
小学教师师德反思
2014/02/03 职场文书
团结演讲稿范文
2014/05/23 职场文书
停电调休通知
2015/04/16 职场文书
中标通知书范本
2015/04/17 职场文书
婚宴祝酒词大全
2015/08/10 职场文书
尊师重教主题班会
2015/08/14 职场文书
一篇文章弄懂Python关键字、标识符和变量
2021/07/15 Python
详细聊聊vue中组件的props属性
2021/11/02 Vue.js
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers