[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
加密那段似乎存在效率问题~
心绪平和,眼藏静谧。

TOP

试下这样?、、、
  1. @echo off
  2. set "var=0 1 2 3 4 5 6 7 8 9 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 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"
  3. set "str=4 5 6 7 8 9 0 1 2 3 h i j k l m n o p q r s t u v w x y z 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 A B C D E F G"
  4. For /l %%i in (0 2 123) do (call set ".%%var:~%%i,1%%=%%str:~%%i,1%%")
  5. set /p text=Input:
  6. :loop
  7. If defined text (
  8.    set "var=%text:~,1%"
  9.    setlocal enabledelayedexpansion
  10.    If defined .!var! (set "var=!.%text:~,1%!")
  11.    <nul set /p= !var!
  12.    endlocal
  13.    set "text=%text:~1%" & goto loop
  14. )
  15. echo. & pause
复制代码
另,如果能用随机密码表的话,加密可能更加牢固些了。

[ 本帖最后由 pusofalse 于 2008-11-16 08:22 编辑 ]
心绪平和,眼藏静谧。

TOP

用随机密码表扰乱明文,输出结果看起来完全就像是直接echo字符串常量lkamsd的,这个常量随便写就可以。唯有当输入的字符串稍长,或者是一篇完整的英文文章时才有规律可循。对于字符串的处理,批处理也是不太擅长,比如对特殊字符><!%|&^"的处理等。if defined .!var! 的确不能区分大小写,在想两全的方法。
可能会有帮助:
重命名含特殊字符的文件:
http://bbs.bathome.net/thread-1251-1-1.html
用维热纳尔方阵给文本加密:
http://bbs.bathome.net/viewthrea ... C%C8%C8%C4%C9%B6%FB
心绪平和,眼藏静谧。

TOP

返回列表