PHP加密解密实例分析


Posted in PHP onDecember 25, 2015

本文实例讲述了PHP加密解密方法。分享给大家供大家参考,具体如下:

//加密
function string2secret($str)
{
 $key = "123";
 $td = mcrypt_module_open(MCRYPT_DES,'','ecb','');
 $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
 $ks = mcrypt_enc_get_key_size($td);
 $key = substr(md5($key), 0, $ks);
 mcrypt_generic_init($td, $key, $iv);
 $secret = mcrypt_generic($td, $str);
 mcrypt_generic_deinit($td);
 mcrypt_module_close($td);
 return $secret;
}
//解密
function secret2string($sec)
{
 $key = "123";
 $td = mcrypt_module_open(MCRYPT_DES,'','ecb','');
 $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
 $ks = mcrypt_enc_get_key_size($td);
 $key = substr(md5($key), 0, $ks);
 mcrypt_generic_init($td, $key, $iv);
 $string = mdecrypt_generic($td, $sec);
 mcrypt_generic_deinit($td);
 mcrypt_module_close($td);
 return trim($string);
}
echo secret2string(string2secret("11111111111111111"));
//显示结果是11111111111111111
echo '<br>'.string2secret("11111111111111111");
//显示乱码
echo '<br>';
//$string:要加密的字符串 $isEncrypt=true:加密 $isEncrypt=false:解密
function dencrypt($string, $isEncrypt = true, $key = "KEY_SPACE") {
 if (!isset($string{0}) || !isset($key{0})) {
  return false;
 }
 $dynKey = $isEncrypt ? hash('sha1', microtime(true)) : substr($string, 0, 40);
 $fixedKey = hash('sha1', $key);
 $dynKeyPart1 = substr($dynKey, 0, 20);
 $dynKeyPart2 = substr($dynKey, 20);
 $fixedKeyPart1 = substr($fixedKey, 0, 20);
 $fixedKeyPart2 = substr($fixedKey, 20);
 $key = hash('sha1', $dynKeyPart1 . $fixedKeyPart1 . $dynKeyPart2 . $fixedKeyPart2);
 $string = $isEncrypt ? $fixedKeyPart1 . $string . $dynKeyPart2 : (isset($string{339}) ? gzuncompress(base64_decode(substr($string, 40))) : base64_decode(substr($string, 40)));
 $n = 0;
 $result = '';
 $len = strlen($string);
 for ($n = 0; $n < $len; $n++) {
  $result .= chr(ord($string{$n}) ^ ord($key{$n % 40}));
 }
 return $isEncrypt ? $dynKey . str_replace('=', '', base64_encode($n > 299 ? gzcompress($result) : $result)) : substr($result, 20, -20);
}
echo strlen(dencrypt("12345678912345"));

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
建立动态的WML站点(二)
Oct 09 PHP
php allow_url_include的应用和解释
Apr 22 PHP
PHP统计目录下的文件总数及代码行数(去除注释及空行)
Jan 17 PHP
php基础学习之变量的使用
Jun 09 PHP
解析PHP提交后跳转
Jun 23 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
Dec 03 PHP
ThinkPHP上使用多说评论插件的方法
Oct 31 PHP
PHP中__FILE__、dirname与basename用法实例分析
Dec 01 PHP
php实现按照权重随机排序数据的方法
Jan 09 PHP
PHP中filter函数校验数据的方法详解
Jul 31 PHP
PHP仿微信多图片预览上传实例代码
Sep 13 PHP
PHP实现的Redis多库选择功能单例类
Jul 27 PHP
PHP时间类完整实例(非常实用)
Dec 25 #PHP
PHP图形操作之Jpgraph学习笔记
Dec 25 #PHP
php实现scws中文分词搜索的方法
Dec 25 #PHP
php自定义分页类完整实例
Dec 25 #PHP
php导出生成word的方法
Dec 25 #PHP
大家都应该掌握的PHP关联数组使用技巧
Dec 25 #PHP
[原创]PHP实现逐行删除文件右侧空格的方法
Dec 25 #PHP
You might like
文件上传程序的全部源码
2006/10/09 PHP
php中批量删除Mysql中相同前缀的数据表的代码
2011/07/01 PHP
解析php mysql 事务处理回滚操作(附实例)
2013/08/05 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
2014/09/16 PHP
php从文件夹随机读取文件的方法
2015/06/01 PHP
Laravel框架实现利用中间件进行操作日志记录功能
2018/06/06 PHP
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
jQuery把表单元素变为json对象
2013/11/06 Javascript
JQuery实现当鼠标停留在某区域3秒后自动执行
2014/09/09 Javascript
在JavaScript中处理数组之reverse()方法的使用
2015/06/09 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
js图片跟随鼠标移动代码
2015/11/26 Javascript
Javascript技术难点之apply,call与this之间的衔接
2015/12/04 Javascript
浅析jQuery事件之on()方法绑定多个选择器,多个事件
2016/04/27 Javascript
Angular实现的简单定时器功能示例
2017/12/28 Javascript
如何在项目中使用log4.js的方法步骤
2019/07/16 Javascript
小程序如何写动态标签的实现方法
2020/02/05 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
2020/02/10 Javascript
JQuery表单元素取值赋值方法总结
2020/05/12 jQuery
Python的SQLalchemy模块连接与操作MySQL的基础示例
2016/07/11 Python
python提取图像的名字*.jpg到txt文本的方法
2018/05/10 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
带你学习Python如何实现回归树模型
2020/07/16 Python
详解HTML5 data-* 自定义属性
2018/01/24 HTML / CSS
Nike瑞典官方网站:Nike.com (SE)
2018/11/26 全球购物
C和C++经典笔试题附答案解析
2014/08/18 面试题
外科实习自我鉴定
2013/10/06 职场文书
农场厂长岗位职责
2013/12/28 职场文书
2014年基层党组织公开承诺书
2014/03/29 职场文书
法人授权委托书格式
2014/04/08 职场文书
法制宣传标语集锦
2014/06/25 职场文书
药品营销专业毕业生自荐信
2014/07/02 职场文书
奉献爱心演讲稿
2014/09/04 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
转正申请报告格式
2015/05/15 职场文书