[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
BASE64 字节位的利用率是 6/8 = 75%, 需要用比原始信息多出 1 / (6/8) - 1 = 1/3 (编码增长率 33%) 的字节数才能完整表达
BASE64 编码增长率 33%

设想:

如果将 BASE64 进一步发展, 将字节位的利用率提高到 7/8 , 只需要用比原始信息多出 1 / (7/8) - 1 = 1/7 的字节数就能完整表达
BASE128 编码增长率 14%

BASE128 如果可行, 将字节位的利用率提高到 7/8, 但需要用到 128 个可打印字符

ASCII 字符中二进制最高位为 0 的字符是 0x0 ~ 0x7F, 只有 128 个, 但其中还有若干控制字符, 所以不够用, 而 0x80 ~ 0xFF 的最高二进制位都是 1 , 将会与多字节文本编码冲突

------------------------------  BASE128 不可行 ------------------------------


Ascii85 可以将编码增长率降到 25%
https://en.wikipedia.org/wiki/Ascii85


basE91 encoding 可以将编码增长率降到 23%
http://base91.sourceforge.net/
1

评分人数

TOP

本帖最后由 codegay 于 2016-9-13 11:22 编辑

回复 31# aa77dd@163.com


    base85已经有很多特殊字符了。bat中能处理得过来?

python版的base91 实现
https://github.com/aberaud/base91-python/blob/master/base91.py

c和python base92
https://github.com/thenoviceoof/base92
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 32# codegay


我用 basE91 中非字母非数字的 29 个字符
  1. !#$%&()*+,./:;<=>?@[]^_`{|}~"
复制代码
输入到 QR CODE 生成器(批处理方式)中, 正确生成了 二维码, 扫描还原结果正确
http://bbs.bathome.net/viewthrea ... p;extra=&page=1

TOP

本帖最后由 happy886rr 于 2016-10-27 17:04 编辑

base64加权解码器
不算解压代码仅1.39K,转门针对exe压缩,并且过滤论坛特殊词gc d 、fl g等。亦可采用LZ77算法。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. ::*********BASE64 加权解码器*********
  4. set $=set [#]&CALL :BASE64_PRESS&set [$]=A&((for %%Z in ([,],{,},_,$,#,-,@) do (set [$]=![$]!![$]!&for %%S in (![$]!) do (for /l %%i in (1,1,2) do (!$!%%i=![#]%%i:%%Z=%%S!))))&for /l %%i in (1,1,2) do (set/p=![#]%%i:.=!<NUL))>1.BSEP&certutil -decode 1.BSEP 1.exe&pause&exit /b
  5. ::***********************************
  6. :BASE64_PRESS
  7. !$!1=TVqQ[M]E]//8[Lg{AQ_{][A4]A4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1vZGUuDQ0KJ{ABITPKKDC2c2QwtnNkMLZzZDC2c2Q8tnNljMpbZBy2c2Y8xktkNLZzZYzKY2Q8tnNkMLZ3ZHC2c2ToLltkNLZzZUmljaAwtnNk}{][ABQRQ[TAEDACtjyk0{[O[DwELAQYAkAE[DAC{jgI[FAC[DgAw]B[B]AQ]B{[E{ABAG[BQAg{M][B[AB][E[AE{B{][ADQE[A8$_{][DgAw[R_]C50ZXh0]ggE[FAC[CQAQ[UAI}[C[AGAucmRhdGE[MoB[DgAw[0AE[OAD}[B[ABALmRhdGE[ABc]sAU[G]CwBQ}[Q[AwIN8JAQDfQ9oxAV[Ogn]WWoBWMOLRCQIM8lRUf9wCP9wBFHoUgE[GjABU[6AQ[ABZM8DD/yXgA0[VYvsav9oKAR[Gj[0[ZKE]AUGSJJQ]CD7CBTVleJZeiDZfwAagH/FQwEQABZgw0ABk[/4MNBAZ[P//FQgEQACLDfwFQACJCP8VBAR[IsN+AV[IkIoQAEQACLAKMIBk[6MM[ACDPeAFQ[AdQxovAN[P8V/AN[Fnol]Gi8BU[aLgFQADofw[AKH0BU[iUXYjUXYUP818AV[I1F4FCNRdRQjUXkUP8V9AN[Gi0BU[aLAFQADoT]P8V8AN[ItN4IkI/3Xg/3XU/3Xk6N/+//+DxDCJRdxQ/xXsA0[i0XsiwiLCYlN0FBR6A8[ABZWcOLZej/ddD/FeQDQAD/JegDQAD/JfgDQABo[ADAGg[AEA6A0[ABZWcMzwMPD/yUQBE[/yUUBE[/yUcBE}]C0B[AyAQ[NAE[DeB[A5gQ[PYE[AGBQ[EgU[CYF[A2BQ[RgU[FQF[BmBQ[egU][ACIBQ{]D/////fgN[JIDQABwB{]AC8B[A4AM[KwE{]AJ4F[AcB}{]AC0B[AyAQ[N
  8. !$!2=AE[DeB[A5gQ[PYE[AGBQ[EgU[CYF[A2BQ[RgU[FQF[BmBQ[egU][ACIBQ][AKECcHV0cw[TVNWQ1JULmRsb[A0wBfZXhpdABIAF9YY3B0RmlsdGVyAEkCZXhpd[AZABfX3BfX19pbml0ZW52AFgAX19nZXRtYWluYXJncwAPAV9pbml0dGVybQCDAF9fc2V0dXNlcm1hdGhlcnI[J0AX2FkanVzdF9mZGl2[BqAF9fcF9fY29tbW9kZQ[bwBfX3BfX2Ztb2Rl[CBAF9fc2V0X2FwcF90eXBl[DKAF9leGNlcHRfaGFuZGxlcjM[LcAX2NvbnRyb2xmc[APgBVUkxEb3dubG9hZFRvRmlsZUE[HVybG1vbi5kbGw}{][ABPSyEAVXNhZ2U6IERPV04gPHVybD4gPHBhdGg+][EA
  9. goto :EOF
复制代码

TOP

返回列表