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 相关文章推荐
在PHP3中实现SESSION的功能(一)
Oct 09 PHP
PHP删除特定数组内容并且重建数组索引的方法.
Mar 25 PHP
深入php多态的实现详解
Jun 09 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
Aug 18 PHP
微信公众平台消息接口校验与消息接口响应实例
Dec 23 PHP
PHP中each与list用法分析
Jan 08 PHP
PHP pear安装配置教程
May 14 PHP
深入理解PHP之OpCode原理详解
Jun 01 PHP
php版微信公众号接口实现发红包的方法
Oct 14 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
PHP正则表达式笔记与实例详解
May 09 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
微信公众号OAuth2.0网页授权问题浅析
2017/01/21 PHP
thinkPHP5.0框架简单配置作用域的方法
2017/03/17 PHP
PHP实现唤起微信支付功能
2019/02/18 PHP
js活用事件触发对象动作
2008/08/10 Javascript
从阶乘函数对比Javascript和C#的异同
2012/05/31 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
一个JS函数搞定网页标题(title)闪动效果
2014/05/13 Javascript
js取得html iframe中的元素和变量值
2014/06/30 Javascript
解析javascript中鼠标滚轮事件
2015/05/26 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
JS 设置Cookie 有效期 检测cookie
2017/06/15 Javascript
React Native仿美团下拉菜单的实例代码
2017/08/08 Javascript
vue实现商城上货组件简易版
2017/11/27 Javascript
js 实现碰撞检测的示例
2020/10/28 Javascript
[06:07]辉夜杯现场观众互动 “比谁远送显示器”
2015/12/26 DOTA
python获取指定网页上所有超链接的方法
2015/04/04 Python
Python实现的弹球小游戏示例
2017/08/01 Python
浅谈Python中的bs4基础
2018/10/21 Python
python多进程控制学习小结
2018/10/31 Python
pandas去重复行并分类汇总的实现方法
2019/01/29 Python
对Django外键关系的描述
2019/07/26 Python
Java Unsafe类实现原理及测试代码
2020/09/15 Python
让IE6、IE7、IE8支持CSS3的脚本
2010/07/20 HTML / CSS
将HTML5 Canvas的内容保存为图片借助toDataURL实现
2013/05/20 HTML / CSS
浅谈HTML5 Web Worker的使用
2018/01/05 HTML / CSS
html5使用window.postMessage进行跨域实现数据交互的一次实战
2021/02/24 HTML / CSS
使用索引有什么好处
2016/07/27 面试题
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
2012/04/17 面试题
教师岗位职责
2013/11/17 职场文书
珠宝店促销方案
2014/03/21 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书
新闻通讯稿模板
2015/07/22 职场文书
幼师自荐信范文(2016推荐篇)
2016/01/28 职场文书