paip.URL参数压缩64进制
paip.URL参数压缩64进制
有时候URL参数经过编码是16进制的,这样会比较长,可以使用64进制来压缩一下。。约可以减少30%。。。
比如admin,这个字串,经过加密后是D7D5E2DACF,增长了一倍。。我们可以用64进制来来压缩一下,得到的结果是19Xi2sP
主要过程是:
1.把此字串每三个分为一组,
2.然后每组转为64进制。。再连接起来就行了。
3.转码对照串来自于BASE64,不过考虑到URL传输的实际情况把最后两们+/变成了@$,这样就可以不用URL ENCODE就可以直接http传输。。
这里主要由ASP页面发起请求,PHP回应,所以编码是VBS写的,而解码是PHP写的..
------16进制转64过程(vbs)------
const BASE_64_MAP_INIT_L718 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@$"
''16进制转64进制
PUBLIC FUNCTION HEX64Encode(plain)
dim msgarr,newstr
msgarr=str2array_l718(plain,3)
for i=0 to ubound(msgarr)
dim numHex
numHex=msgarr(i)
dim newchar 'HEx64 format
newchar= tohex64(numHex)
newstr=newstr+cstr(newchar)
next
HEX64Encode = newstr
END FUNCTION
-----------------解码过程----------------
// ' 64进制转16进制
function HEX64Decode($num)
{
$msgarr=str_split($num,2);
$newstr="";
for($i=0;$i< count ($msgarr);$i++){
$v=$msgarr[$i];
$keychar=hex64Tohex($v);// 'encode char
$newstr=$newstr.$keychar;
}
return $newstr;
}
$BASE_64_MAP_INIT = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@$";
//单个数 ONLY
function hex64Tohex($num) { // Xi
global $BASE_64_MAP_INIT;
$BASE_64_MAP_INIT_arr = str_split ( $BASE_64_MAP_INIT );
$numarr = str_split ( $num );
$numDec=0;
if (count ( $numarr ) == 1) {
$first = $numarr [0];
$firstIndex = strpos ( $BASE_64_MAP_INIT, $first );
$numDec = $firstIndex;
} else {
$first = $numarr [0];
$sencond = $numarr [1];
$firstIndex = strpos ( $BASE_64_MAP_INIT, $first );
$sencondIndex = strpos ( $BASE_64_MAP_INIT, $sencond );
$firstNum = $firstIndex * 64;
$numDec = $firstNum + $sencondIndex;
}
$numHex = dechex ( $numDec );
return $numHex;
}
paip.URL参数压缩64进制相关推荐
- js 64进制转换方法 URL参数压缩
经常URL上面需要有不少中文,但直接放置中文容易出现乱码,所以要进行转码,但普通转码后,会发现URL太长了,不便于保存和处理.和朋友讨论以后,觉得可以使用一定的压缩算法,将转码后的中文进行处理,能够明 ...
- 64进制(base64)
base64相当于64进制 其符号序列为: A...Za...z0...9+/ 一共64个符号,那么A代表0,a代表26,0代表52,/代表63. base64编码的原理: 将3字节转成4个字符,3个 ...
- 10进制和64进制互转
以前写过16进制和64进制的转换函数,今天做下载页的短连接,突然想到可以吧id转换为64进制,让地址看起来更短,下面是代码,分享给大家.性能测试,1000次计算互转计算,4位64进制数(aaaa:26 ...
- php 64进制转16进制,PHP进制转换[实现2、8、16、36、64进制至10进制相互转换]
$mtime1= explode(" ", microtime()); $startTime= $mtime1[0] + $mtime1[1];?> 进制转换 2 8 10 ...
- java 10进制转64进制_十进制与64进制互相转换算法
实现代码如下: /** * */ package com.M.controller.test; import java.util.Stack; /** * * @author online zuozu ...
- 2020-11-26 python 十进制转64进制
字符集: table = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_" 方法一: 求余和整除 ...
- 十进制(10)与64进制互相转换算法
十进制(10)与64进制互相转换算法 应用在 网址缩短,增加二维码清晰度 有字数限制的微博,文章分享等 数字的加解密 JAVA实现代码 import java.security.MessageDige ...
- 用二进制计数器集成芯片74161设计一个64进制计数器
用二进制计数器集成芯片74161设计一个64进制计数器.要求分别用反馈清零法和反馈置数法实现.画出设计的电路图. 端口介绍: A B C D为置数的数字输入端(其中D为最高位,A为最低位),在实现置数 ...
- 将10进制整数转为64进制形式的PHP实现
/*** @param int $integer 10进制正整数* @return string 64进制形式*/ function decimal_to_base64($integer) {$cha ...
- 计算机基础二,四,八,十,32,64进制 转换规律
计算机基础进制 计算机常用进制: 二进制 八进制 十进制 16进制 计算机操作系统进制: 二进制 为什么采用二进制? (1)技术上容易实现.用双稳态电路表示二进制数字0和1是很容易的事情. 计算机使用 ...
最新文章
- python3 urllib代理_Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
- 计算机视觉:让冰冷的机器看懂多彩的世界
- 从刷票了解如何获得客户端IP
- 原生编辑器_免费开源的GIF制作神器,可录屏幕/摄像头/画板,自带编辑器
- GMGridView cell button
- ESP32中下载固件时的波特率设置和调试监控时波特率的设置
- TEA加密算法的C/C++实现
- 以太坊源码分析-交易
- Linux系统常用命令以及常见问题的解决方法
- mount: 未知的文件系统类型“vboxsf”_第六章--文件系统管理
- 关于 Qt 5,你所需要了解的基础知识
- php 数组是否属于迭代器,数组的迭代器属性Iterator介绍
- 渗透测试专题二之msf(kali)的攻击教程将DOS操作系统中的本地文件接口“中断13”改造为网络文件系统...
- linux异常级别,linux性能异常定位之进程级别
- H盘提示拒绝访问资料怎么寻回
- 实验2 双绞线的制作
- 7-12 特立独行的幸福 (25 分)(如何判断特立独行)
- 首先实现储存程序的电子数字计算机是什么,世界上首先实现存储程序的电子计算机是什么...
- 【Android 无法修改App名字】
- SpringBoot+阿里云短信服务实现发送短信验证码功能