[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程批处理在线视频分享
返回列表 发帖

[加密解密] 批处理版Base64编码工具

本帖最后由 老刘1号 于 2017-4-16 16:38 编辑

关联贴:http://www.bathome.net/thread-587-1-1.html
Base64科普:http://baike.baidu.com/link?url=FGO-UZ6dxJoM00BCoq6uTIDJtr2XTQMqCPZVkZMHNRDgM_PzVusq8e7mzBxxtRETKLolYatizD_9G1W9MSDBPa
用法:
Batname <文件路径 或 字符串>
借助外部命令FC,Fsutil,Findstr
已知BUG:受批处理机制影响,当外参为字符串时,英文感叹号和英文双引号会被丢弃。
请将其写入文本文件并将文件路径传参
支持任何文件编码,无视特殊符号
  1. %老刘原创%
  2. %如有雷同,纯属巧合%
  3. %转载请注明批处理之家及作者昵称%
  4. @ Echo off & Pushd %tmp%
  5. Setlocal ENABLEDELAYEDEXPANSION
  6. Set rand=!random!
  7. if not exist "%~1" (
  8. Set/p"=%~1"<nul >$_!rand!
  9. Set FilePath=$_!rand!
  10. ) else Set "FilePath=%~1"
  11. Del /f $_!rand!_ 2>nul
  12. For %%a in ("!FilePath!") do ^
  13. Fsutil file createnew $_!rand!_ %%~za >nul
  14. Set Alphabet=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
  15. Set /a Counter=0
  16. Del /f $_!rand!_$ 2>nul
  17. (for /f "Tokens=2" %%. in (
  18. 'Fc /b "!FilePath!" $_!rand!_ ^| Findstr /R /C:"[0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F]: [0-9A-F][0-9A-F] 00"'
  19. ) Do (
  20. Set /a Counter+=1
  21. Set/p"=%%. "
  22. if !Counter! EQU 3 (
  23. Set /a Counter=0
  24. Echo.
  25. )
  26. ))<nul >$_!rand!_$
  27. DEL /F $_!rand! $_!rand!_ 2>nul
  28. Set Endstr=
  29. (For /f "Tokens=1-3" %%A in ($_!rand!_$) do (
  30. If "%%C" EQU "" (
  31. If "%%B" EQU "" (
  32. Set /a "Bse1=0x%%A>>2,Bse2=(0x%%A&0x3)<<4,Bse3=Bse4=64"
  33. ) Else Set /a "Bse1=0x%%A>>2,Bse2=((0x%%A&0x3)<<4)|(0x%%B>>4),Bse3=(0x%%B&0xf)<<2,Bse4=64"
  34. ) Else Set /a "Bse1=0x%%A>>2,Bse2=((0x%%A&0x3)<<4)|(0x%%B>>4),Bse3=((0x%%B&0xf)<<2)|(0x%%C>>6),Bse4=0x%%C&0x3f"
  35. For /l %%. in (1 1 4) Do For %%' in (!Bse%%.!) do (
  36. if "!Alphabet:~%%',1!" EQU "=" (
  37. Set "Endstr=!Endstr!="
  38. ) Else Set/p"=!Alphabet:~%%',1!"
  39. )
  40. ))<nul
  41. Echo.%Endstr%
  42. Del /f $_!rand!_$ 2>nul
复制代码
3

评分人数

Change the world by program!
My CodePage:https://code.csdn.net/qq_23693343

解码方法:
Win7及以上——
  1. Batname <FilePath|String> >BseCode.txt %编码%
  2. certutil -decode BseCode.txt Decode.txt %调用系统自带外部程序解码%
  3. Start Decode.txt %打开解码后的文件%
复制代码
或使用Happy兄的Bse来解码:http://www.bathome.net/thread-42150-1-1.html
  1. Batname <FilePath|String> >BseCode.txt %编码%
  2. Bse.exe -d BseCode.txt Decode.txt %调用Bse第三方解码%
  3. Start Decode.txt %打开解码后的文件%
复制代码
Change the world by program!
My CodePage:https://code.csdn.net/qq_23693343

TOP

回复 2# 老刘1号
位运算,溜到家了。

TOP

回复 3# happy886rr


    学汇编之后才发现批的位运算如此好用……
Change the world by program!
My CodePage:https://code.csdn.net/qq_23693343

TOP

回复 4# 老刘1号
你应该用汇编写一个base编码器,那才有速度。

TOP

回复 5# happy886rr


    汇编还没学到终端和端口……
现在处于尴尬境地,
处理一个数据需要知道长度,
处理完还需要用DEBUG显示……
……赶快往深学了
Change the world by program!
My CodePage:https://code.csdn.net/qq_23693343

TOP

返回列表