php 加密解密函数封装
算法一:
//加密函数 function lock_url($txt,$key='yang') {$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";$nh = rand(0,64);$ch = $chars[$nh];$mdKey = md5($key.$ch);$mdKey = substr($mdKey,$nh%8, $nh%8+7);$txt = base64_encode($txt);$tmp = '';$i=0;$j=0;$k = 0;for ($i=0; $i<strlen($txt); $i++) {$k = $k == strlen($mdKey) ? 0 : $k;$j = ($nh+strpos($chars,$txt[$i])+ord($mdKey[$k++]))%64;$tmp .= $chars[$j];}return urlencode($ch.$tmp); } //解密函数 function unlock_url($txt,$key='yang') {$txt = urldecode($txt);$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";$ch = $txt[0];$nh = strpos($chars,$ch);$mdKey = md5($key.$ch);$mdKey = substr($mdKey,$nh%8, $nh%8+7);$txt = substr($txt,1);$tmp = '';$i=0;$j=0; $k = 0;for ($i=0; $i<strlen($txt); $i++) {$k = $k == strlen($mdKey) ? 0 : $k;$j = strpos($chars,$txt[$i])-$nh - ord($mdKey[$k++]);while ($j<0) $j+=64;$tmp .= $chars[$j];}return base64_decode($tmp); }
算法二:
function passport_encrypt($txt, $key = 'yang') { srand((double)microtime() * 1000000); $encrypt_key = md5(rand(0, 32000)); $ctr = 0; $tmp = ''; for($i = 0;$i < strlen($txt); $i++) { $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr; $tmp .= $encrypt_key[$ctr].($txt[$i] ^ $encrypt_key[$ctr++]); } return urlencode(base64_encode(passport_key($tmp, $key))); } function passport_decrypt($txt, $key = 'yang') { $txt = passport_key(base64_decode(urldecode($txt)), $key); $tmp = ''; for($i = 0;$i < strlen($txt); $i++) { $md5 = $txt[$i]; $tmp .= $txt[++$i] ^ $md5; } return $tmp; }
算法三:
//加密函数 function lock_url($txt,$key='yang') {$txt = $txt.$key;$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";$nh = rand(0,64);$ch = $chars[$nh];$mdKey = md5($key.$ch);$mdKey = substr($mdKey,$nh%8, $nh%8+7);$txt = base64_encode($txt);$tmp = '';$i=0;$j=0;$k = 0;for ($i=0; $i<strlen($txt); $i++) {$k = $k == strlen($mdKey) ? 0 : $k;$j = ($nh+strpos($chars,$txt[$i])+ord($mdKey[$k++]))%64;$tmp .= $chars[$j];}return urlencode(base64_encode($ch.$tmp)); } //解密函数 function unlock_url($txt,$key='yang') {$txt = base64_decode(urldecode($txt));$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";$ch = $txt[0];$nh = strpos($chars,$ch);$mdKey = md5($key.$ch);$mdKey = substr($mdKey,$nh%8, $nh%8+7);$txt = substr($txt,1);$tmp = '';$i=0;$j=0; $k = 0;for ($i=0; $i<strlen($txt); $i++) {$k = $k == strlen($mdKey) ? 0 : $k;$j = strpos($chars,$txt[$i])-$nh - ord($mdKey[$k++]);while ($j<0) $j+=64;$tmp .= $chars[$j];}return trim(base64_decode($tmp),$key); }
转载于:https://www.cnblogs.com/yang-2018/p/10195206.html
php 加密解密函数封装相关推荐
- php动态密码和加密解密函数的使用(动态密码、Discuz核心函数AuthCode、任意输入密码验证)
php加密解密的使用 一.项目说明 二.项目分析 1.js外部文件 2.HTML容器构建 3.layui前端验证 4.php后端验证 封装函数 密码验证规则 strpos内置函数 三.经典的核心加密函 ...
- php中的base64,php中base64_decode与base64_encode加密解密函数
php中base64_decode与base64_encode加密解密函数,实例分析了base64加密解密函数的具体用法,具有一定的实用价值,需要的朋友可以参考下 本文实例讲述了php中base64_ ...
- 【C 语言】文件操作 ( 文件加密解密 | 使用第三方 DES 加密解密库 | 头文件导入 | 兼容 C++ 语言 | 加密解密函数说明 )
文章目录 一.导入第三方库头文件 二.头文件说明 1.兼容 C++ 语言 2.头文件导入限制 3.加密解密函数说明 一.导入第三方库头文件 对文件进行加密 , 将文件中的数据分成若干块 , 一块一块的 ...
- 加密解密php,2个比较经典的PHP加密解密函数分享
项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理. 最常见的应用在用户登录以及一些AP ...
- php可逆加密解密函数,php 好用可逆的 加密解密 函数。
php 好用可逆的加密解密函数. function encode($content, $key = 'pass' ) { // 加密数据的函数 , 主要进行移位操作 $key = md5($key); ...
- 字符串加密解密函数 (C#) (转)
字符串加密解密函数 (C#) (转) 字符串加密解密函数 (C#) using System; using System.Text; using System.Security.Cryptograph ...
- 自己实现的php加密解密函数结果纯字母和数字
php自带的base64加密解密函数大部分人都知道,加密后很容易被解密,所以就自己实现的php加密解密函数,密文是字母和数字组合. <?php /* *加密 */ function encode ...
- 各种加密解密函数(URL加密解密、sha1加密解密、des加密解密)
普通hash函数如md5.sha1.base64等都是不可逆函数.虽然我们利用php可以利用这些函数写出可逆函数来.但是跨语言时这类可逆函数非常难搞定.所以这时尽量使用AES DES RC4 Rabb ...
- JavaScript 自写加密解密函数
JavaScript 自写加密解密函数 版权声明:本文为CSDN博主「zshsats」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https:// ...
最新文章
- sqlite3.OperationalError: database is locked
- Cygwin运行nutch报错:Failed to set permissions of path
- python爬虫提取人名_python爬虫—爬取英文名以及正则表达式的介绍
- C++远征之封装篇——对象数组,对象成员
- 一步一步写算法(之排序二叉树线索化)
- iPhone SDK开发基础之使用UINavigationController组织和管理UIView
- 程序猿的执业修养(七)——不要卖弄,多思慎言
- ASCIIMathML技术简介~
- 滴滴出行场景中语音识别模型的自学习平台化实践
- 富滇银行 Windows7 无法使用U盾【证书信息读取失败,请选择正确的富滇银行网银证书!】 解决办法
- 二十一世纪大学英语读写基础教程学习笔记(原文)——3 - Mothers(母亲)
- saas系统服务器搭建,SaaS平台部署.doc
- CSAPP Bomb Lab
- 20220728使用电脑上的蓝牙和汇承科技的蓝牙模块HC-05配对蓝牙串口传输
- (内含两种方式)Android 在线查看文档world丶xls丶ppt等文件
- 在通用计算机内 PC是指,计算机模拟考试题答案
- Normalization如何解决梯度消失
- 【数据库原理及应用】——数据库系统结构和组成(学习笔记)
- JMeter基础使用教程及使用技巧(快速入门)
- 深入理解假设检验的两类错误和功效
热门文章
- Java的子类可以继承父类的静态变量和静态方法吗?
- MySQL的存储过程和函数简单写法
- HDR和SDR的区别
- docker create_Docker动手教程2.2:容器基本操作2
- 驱动级的自动按键_空调遥控器特殊按键使用方法及注意事项
- linux下kegg注释软件,KEGG功能注释工具 KofamKOALA 安装与使用
- okhttp 连接池_okhttp 源码分析
- 【C语言】结构体赋值
- 字符斜杠是合法常量吗_【面试秘籍】你对String的intern方法了解吗
- 涡轮流量计说明书_实际应用中超声波流量计与电磁流量计哪个更好用