[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
用替换法效率更高,缺点需要一个中介字符,本代码中用的是#号,也就是文本内不能含#号。
:
  1. @echo off&setlocal enabledelayedexpansion
  2. ::创建随机字典
  3. set "code= abcdefghijklmnopqrstuvwxyz"
  4. set "code2=a b c d e f g h i j k l m n o p q r s t u v w x y z"
  5. set /a dd=27
  6. set wjm=a.txt
  7. for /l %%a in (13 -1 1) do (
  8.    set /a dd-=1,ww=!random!%%dd+1
  9.    for %%i in (!ww!) do set "aa=!code:~%%i,1!"
  10.    for %%i in (!aa!) do set "code=!code:%%i=!"
  11.    set /a dd-=1,ww=!random!%%dd+1
  12.    for %%i in (!ww!) do set "bb=!code:~%%i,1!"
  13.    for %%i in (!bb!) do set "code=!code:%%i=!"
  14.    set .!aa!=!bb!&set ".!bb!=!aa!"
  15. )
  16. set num=a&echo.密文>c.txt
  17. :loop 加密、解密为同一代码。
  18. for /f "%skip% delims=" %%a in (%wjm%) do (
  19.     if not defined num echo 原文>>c.txt
  20.     set num=%%a&setlocal
  21.     for %%i in (!code2!) do (
  22.        if not defined ..%%i (
  23.          set num=!num:%%i=#!
  24.          for %%j in (!.%%i!) do set num=!num:%%j=%%i!&set num=!num:#=%%j!
  25.          set ..%%i=a&set ..!.%%i!=a
  26.        )
  27.     )
  28.     >>c.txt echo.!num!
  29.     endlocal
  30. )
  31. set "num="&echo.>>c.txt
  32. if "!wjm!"=="a.txt" set wjm=c.txt&set "skip=skip=1"&goto loop
  33. start c.txt
复制代码
1

评分人数

    • batman: 但此法不适合汉字加密PB + 20
技术问题请到论坛发帖求助!

TOP

返回列表