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代码飞起来的40条小技巧(提升php效率)
Apr 12 PHP
php 搜索框提示(自动完成)实例代码
Feb 05 PHP
PHP基础之运算符的使用方法
Apr 28 PHP
PHP使用PHPMailer发送邮件的简单使用方法
Nov 12 PHP
php内核解析:PHP中的哈希表
Jan 30 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
Oct 01 PHP
php自定义函数转换html标签示例
Sep 29 PHP
YII框架中使用memcache的方法详解
Aug 02 PHP
PHP实现动态删除XML数据的方法示例
Mar 30 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
Jan 28 PHP
通过实例解析PHP数据类型转换方法
Jul 11 PHP
php访问对象中的成员的实例方法
Nov 17 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 SQL Injection with MySQL
2011/02/27 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
2016/02/15 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
Laravel框架下载,安装及路由操作图文详解
2019/12/04 PHP
php中yar框架实例用法讲解
2020/12/27 PHP
JS字符串函数扩展代码
2011/09/13 Javascript
JS读取cookies信息(记录用户名)
2012/01/10 Javascript
使用js检测浏览器的实现代码
2013/05/14 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
利用jquery写的左右轮播图特效
2014/02/12 Javascript
下拉框select的绑定示例
2014/09/04 Javascript
JQuery实现超链接鼠标提示效果的方法
2015/06/10 Javascript
AngularJS  双向数据绑定详解简单实例
2016/10/20 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
详解javascript中的变量提升和函数提升
2018/05/24 Javascript
vue 解决computed修改data数据的问题
2019/11/06 Javascript
创建与框架无关的JavaScript插件
2020/12/01 Javascript
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
python3使用smtplib实现发送邮件功能
2018/05/22 Python
pycharm设置注释颜色的方法
2018/05/23 Python
python使用HTMLTestRunner导出饼图分析报告的方法
2019/12/30 Python
Python数据可视化图实现过程详解
2020/06/12 Python
Python 实现一个计时器
2020/07/28 Python
Python常用GUI框架原理解析汇总
2020/12/07 Python
matplotlib之pyplot模块之标题(title()和suptitle())
2021/02/22 Python
Skechers越南官方网站:来自美国的运动休闲品牌
2021/02/22 全球购物
行政内勤岗位职责
2014/04/07 职场文书
装修协议书范本
2014/04/21 职场文书
阅兵口号
2014/06/19 职场文书
2016春节慰问信范文
2015/03/25 职场文书
Python天气语音播报小助手
2021/09/25 Python
MySQL的存储过程和相关函数
2022/04/26 MySQL
Python自动化实战之接口请求的实现
2022/05/30 Python
MySQL新手入门进阶语句汇总
2022/09/23 MySQL