标题: [文本处理] 批处理如何实现字典加密思路? [打印本页]
作者: yangyf34 时间: 2011-3-22 16:45 标题: 批处理如何实现字典加密思路?
我有一段文字:
“批处理是一种简化的脚本语言“
要加密下,想这样加密:
从一篇大概能包含上面字符的文件中,转换成我上面段文字。就是所谓的明文加密吧?
例:
1.txt 一个文件是加密密码字典。
1.txt的第1行第3个是:批
1.txt的第3行第15个是:处
1.txt的第5行第13个是:理
1.txt的第12行第15个是:是
1.txt的第2行第14是:一
1.txt的第5行第17是:种
1.txt的第34行第16是:简
1.txt的第13行第23:化
1.txt的第78行第13:的
1.txt的第123行第23:脚
1.txt的第98行第13:本
1.txt的第12行第18是:语
1.txt的第34行第20:言
转换后的明文密码是:
1,3 3,15 5,13 12,15 2,14 5,17 34,16 13,23 78,13 123,23 98,13 12,18 34,20
作者: yangyf34 时间: 2011-3-22 18:07
如果不限于用dos批命令,我想可以用这样原理来做:
首先加密软件载入txt密码字典到内存:
比如:一个 1.txt字典文件,含这样内容:
【白腹树袋熊的学名来自两个希腊字,杜鹃树和兔子。
作为一种已知的生物,这种树居有袋目哺乳动物,一生大部分时间在地上度过。
它们在野外生存数量很少,属濒危物种。】
那么在内存中这样描述:
白=1,1 (第一行第一个)
腹=1,2 (第一行第二个)
树=1,3 (第一行第三个)
。。。
作=2,1 (第二行第一个)
。。。
后面重复的字符忽略编码,也就是已经编码的字符再次遇到不再编码,比如第二行的“的”。
在加密的时候,先调入字典入内存,然后调入需要加密的文字入内存,2相比较,生成1,12.2,15.3,22.12,14 之类的加密码文本输出电脑。
还有个设想:
如果觉得一串数字看了碍眼,可以把字典内容“倒转编码”,再次用数字串对比编码生成汉字输出电脑。当然这些汉字肯定是语义昏乱~~~
作者: wc726842270 时间: 2011-3-22 19:35
本帖最后由 wc726842270 于 2011-3-23 13:17 编辑
个人感觉思路有些像GB2312的编码机制,算上一种伪代码吧- @echo off&setlocal enabledelayedexpansion 2>nul 3>nul
- (more +13 %0) >#1#.txt
- color 0a
- set /a a=0,b=0
- for /f "delims=" %%i in (#1#.txt) do call :1 %%i
- echo !2,7! !2,18!!3,8!!3,22!!3,2! !2,5!!3,8!!3,6! !1,0!!1,1!!1,2!
- del #1#.txt
- pause>nul&exit
- :1
- set /a a+=1
- set str=%1
- :2
- if "!str:~%b%,1!" neq "" (set %a%,%b%=!str:~%b%,1!&&set /a b+=1&goto :2) else set b=0
- 批处理是一种简化的脚本语言
- QWERTYUIOPASDFGHJKLZXCVBNM
- qwertyuiopasdfghjklzxcvbnm
复制代码
作者: wc726842270 时间: 2011-3-22 19:53
处理的有些问题,不过可以把
“批处理是一种简化的脚本语言
QWERTYUIOPASDFGHJKLZXCVBNM
qwertyuiopasdfghjklzxcvbnm”弄到最后,或用注释的方法,或用NUL,再做相应的处理。但是在这里影向并不是很大
作者: yangyf34 时间: 2011-3-22 20:25
本帖最后由 yangyf34 于 2011-3-22 20:30 编辑
如果不限于用dos批命令,我想可以用这样原理来做:
首先加密软件载入txt密码字典到内存:
比如:一个 1.txt字典文件,含这样内容:
【白腹树袋熊的学名来自两个希腊字,杜鹃树和兔子。
作为一种已知的生物,这 ...
yangyf34 发表于 2011-3-22 18:07
回复wc726842270 大哥,
比如我接着2楼例子:
1.txt字典文件,含这样内容:
【白腹树袋熊的学名来自两个希腊字,杜鹃树和兔子。
作为一种已知的生物,这种树居有袋目哺乳动物,一生大部分时间在地上度过。
它们在野外生存数量很少,属濒危物种。】
我有一句话: "希腊时间是" 想编码加密.
加密过程:
希=1,13
腊=1,14
时=2,28
间=2,29
是=是 (字典无此字)
加密结果:
1,13.1,14.2,28.2,29.是
倒转字典:
白腹树袋熊的学名来自两个希腊字,杜鹃树和兔子。
作为一种已知的生物,这种树居有袋目哺乳动物,一生大部分时间在地上度过。
它们在野外生存数量很少,属濒危物种。
为:
它们在野外生存数量很少,属濒危物种。
作为一种已知的生物,这种树居有袋目哺乳动物,一生大部分时间在地上度过。
白腹树袋熊的学名来自两个希腊字,杜鹃树和兔子。
再次"倒转字典"编码过程:
1,13=属
1,14=濒
2,28=时
2,29=间
是=是 (字典无此字)
再次"倒转字典"编码结果:
属濒时间是
最终就是:
"希腊时间是" 加密成:"属濒时间是" (根据1.txt字典文件)
"属濒时间是" 解密成:"希腊时间是" (根据1.txt字典文件)
作者: CrLf 时间: 2011-3-22 22:55
思路:
把字典一行行定义成变量,通过变量偏移很容易解决,正算或者逆算都没难度,不过字典大时可能出问题。
字典要是很大,还是用findstr提取所需的数行,再进行变量偏移,这样反而比定义变量快些。
作者: wc726842270 时间: 2011-3-23 13:18
不是吧,晕了
作者: caruko 时间: 2011-3-23 19:59
如果需要加密的文本不长,那么findstr /o 可以解决,速度也可以。
如果加密文本长,字典又大,那么还是用别的加密吧。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |