中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-09 11:22
47,812 主题排行 / 349,914 发帖 / 今日 0 篇 / 48,268 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何把密码加密存放,供批处理运行时调用?
可打印版本  3,858 / 11
第1楼 uiopuiop 发表于 2011-01-10 23:57
中级用户 发帖 211 积分 400
如何把密码加密存放,供批处理运行时调用?
如何把密码加密存放,供批处理运行时调用?

[ Last edited by uiopuiop on 2011-1-10 at 23:58 ]
第2楼 Hanyeguxing 发表于 2011-01-11 00:35
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
密码的规则是什么?纯数字?数字加字母?还是常用字符?
加密的算法要求是什么?
存放的位置指定在哪?注册表还是文件?
第3楼 Hanyeguxing 发表于 2011-01-11 01:13
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
写了个简单的,密码要求为纯数字,保存在注册表:

[ Last edited by Hanyeguxing on 2011-1-11 at 01:54 ]
第4楼 uiopuiop 发表于 2011-01-11 19:27
中级用户 发帖 211 积分 400
Originally posted by Hanyeguxing at 2011-1-11 12:35 AM:
密码的规则是什么?纯数字?数字加字母?还是常用字符?
加密的算法要求是什么?
存放的位置指定在哪?注册表还是文件?


re: 密码的规则是什么?- 字母数字的混合(当然如果能带特殊符号更好)
re: 加密的算法要求是什么? - 一般不容易破解即可,当然如果能用高级点的加密更好(MD5, dsa, rsa, etc.)

re; 存放的位置指定在哪?最好能存放在一个文件里。

批处理可以调用第三方命令行工具。

PS. 是否能解释一下三楼代码的加密原理,谢谢!
第5楼 slore 发表于 2011-01-12 13:43
铂金会员 发帖 2,478 积分 5,212
加再多,把if取消……


写的bat的代码,大部分核心操作都要依赖与密码

然后把密码加密MD5在bat里面比较下。如果对了执行。。。

这样看到你的bat源码,如果不比较,随便的password是不行的。


set password=
if md5(password)=fde3494783dfd854

操作的核心部分都要和%passord%有关,中间的某个字符啊,某个
字符再运算变形啊。。。

这个没有正确的password跳过判断下来执行也是不能工作的才可以。
第6楼 uiopuiop 发表于 2011-01-12 23:37
中级用户 发帖 211 积分 400
Originally posted by slore at 2011-1-12 01:43 PM:
加再多,把if取消……


写的bat的代码,大部分核心操作都要依赖与密码

然后把密码加密MD5在bat里面比较下。如果对了执行。。。

这样看到你的 ...


一般自动化脚本都是自动运行的,不会有人工干预,所以不能人工输入密码。
你MD5加密后,如何解密呢?密码在批处理运行时又必须是明文的,运行时候肯定要解密后在穿给相应的命令的,MD5没法认啊。
第7楼 then0011 发表于 2011-01-12 23:53
新手上路 发帖 9 积分 5
厉害 我菜鸟 所以 只有看的分
第8楼 slore 发表于 2011-01-13 09:54
铂金会员 发帖 2,478 积分 5,212
Originally posted by uiopuiop at 2011-1-12 23:37:


一般自动化脚本都是自动运行的,不会有人工干预,所以不能人工输入密码。
你MD5加密后,如何解密呢?密码在批处理运行时又必须是明文的,运行时候肯定要解密后在穿给相应的命令的,MD5没法认啊。



你要无人干预就不要设置密码。。。。


我这里明文是用set /p pw=

让人输入的,然后md5计算下,和md5相比较。。。能过下面的操作和你输入的密码相关系,所以错误的密码是不能用的。


如果你单纯的密码设置了,而只是自动读取?自动判断。。。
把判断注掉了,你有什么加密可言?
第9楼 acaigg 发表于 2011-01-13 21:34
初级用户 发帖 92 积分 115
我是很菜的,代码不太懂。但看得出slore的思维比较严谨。
第10楼 uiopuiop 发表于 2011-01-16 19:50
中级用户 发帖 211 积分 400
大家有么有什么新的思路?
第11楼 cyn01livecn 发表于 2011-01-18 12:18
初级用户 发帖 23 积分 28
简单,替换文字就行了,例如把“1”替换成“X”让人看不懂,调用时再把他换回来。
第12楼 goltaxhs 发表于 2017-08-26 21:48
新手上路 发帖 8 积分 8
1、用C编个最简单的int main(int argc, char * argv[]) 程序, char * argv[]就是第一个参数,程序会对第一个参数进行检查(就是密码),如果成功返回T,失败返回F。
2、在批处理中做一个SE /P PWD=要求输入密码,再将输入值传给第一步的程序,进行参数即密码,进行判断。
3、批处理根据%errorlevel%返回值T/F判断输入的密码是否正确,正确处理下一步,不正确提示再次输入。
4、这样密码保存在c编译好的exe文件中,一般是看不到的,除非破解。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023