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进制相关推荐

  1. js 64进制转换方法 URL参数压缩

    经常URL上面需要有不少中文,但直接放置中文容易出现乱码,所以要进行转码,但普通转码后,会发现URL太长了,不便于保存和处理.和朋友讨论以后,觉得可以使用一定的压缩算法,将转码后的中文进行处理,能够明 ...

  2. 64进制(base64)

    base64相当于64进制 其符号序列为: A...Za...z0...9+/ 一共64个符号,那么A代表0,a代表26,0代表52,/代表63. base64编码的原理: 将3字节转成4个字符,3个 ...

  3. 10进制和64进制互转

    以前写过16进制和64进制的转换函数,今天做下载页的短连接,突然想到可以吧id转换为64进制,让地址看起来更短,下面是代码,分享给大家.性能测试,1000次计算互转计算,4位64进制数(aaaa:26 ...

  4. php 64进制转16进制,PHP进制转换[实现2、8、16、36、64进制至10进制相互转换]

    $mtime1= explode(" ", microtime()); $startTime= $mtime1[0] + $mtime1[1];?> 进制转换 2 8 10 ...

  5. java 10进制转64进制_十进制与64进制互相转换算法

    实现代码如下: /** * */ package com.M.controller.test; import java.util.Stack; /** * * @author online zuozu ...

  6. 2020-11-26 python 十进制转64进制

    字符集: table = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_" 方法一: 求余和整除 ...

  7. 十进制(10)与64进制互相转换算法

    十进制(10)与64进制互相转换算法 应用在 网址缩短,增加二维码清晰度 有字数限制的微博,文章分享等 数字的加解密 JAVA实现代码 import java.security.MessageDige ...

  8. 用二进制计数器集成芯片74161设计一个64进制计数器

    用二进制计数器集成芯片74161设计一个64进制计数器.要求分别用反馈清零法和反馈置数法实现.画出设计的电路图. 端口介绍: A B C D为置数的数字输入端(其中D为最高位,A为最低位),在实现置数 ...

  9. 将10进制整数转为64进制形式的PHP实现

    /*** @param int $integer 10进制正整数* @return string 64进制形式*/ function decimal_to_base64($integer) {$cha ...

  10. 计算机基础二,四,八,十,32,64进制 转换规律

    计算机基础进制 计算机常用进制: 二进制 八进制 十进制 16进制 计算机操作系统进制: 二进制 为什么采用二进制? (1)技术上容易实现.用双稳态电路表示二进制数字0和1是很容易的事情. 计算机使用 ...

最新文章

  1. python3 urllib代理_Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
  2. 计算机视觉:让冰冷的机器看懂多彩的世界
  3. 从刷票了解如何获得客户端IP
  4. 原生编辑器_免费开源的GIF制作神器,可录屏幕/摄像头/画板,自带编辑器
  5. GMGridView cell button
  6. ESP32中下载固件时的波特率设置和调试监控时波特率的设置
  7. TEA加密算法的C/C++实现
  8. 以太坊源码分析-交易
  9. Linux系统常用命令以及常见问题的解决方法
  10. mount: 未知的文件系统类型“vboxsf”_第六章--文件系统管理
  11. 关于 Qt 5,你所需要了解的基础知识
  12. php 数组是否属于迭代器,数组的迭代器属性Iterator介绍
  13. 渗透测试专题二之msf(kali)的攻击教程将DOS操作系统中的本地文件接口“中断13”改造为网络文件系统...
  14. linux异常级别,linux性能异常定位之进程级别
  15. H盘提示拒绝访问资料怎么寻回
  16. 实验2 双绞线的制作
  17. 7-12 特立独行的幸福 (25 分)(如何判断特立独行)
  18. 首先实现储存程序的电子数字计算机是什么,世界上首先实现存储程序的电子计算机是什么...
  19. 【Android 无法修改App名字】
  20. SpringBoot+阿里云短信服务实现发送短信验证码功能

热门文章

  1. ntp 服务导致kudu集群不可用
  2. 浅析PCIe链路LTSSM状态机
  3. 安装Apache配置虚拟目录
  4. 服务器租用别让黑客钻了这些空子
  5. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
  6. 9月第1周文学类网站/频道:新浪文学超起点居首
  7. 系统找不到指定的文件。 : No installed service named Apache
  8. STM32启动代码概述
  9. Windows 2003网络负载均衡的实现
  10. 设计模式-第六篇之策略模式