我有一个想法,用密钥来制作钥匙串,其中包含可能的密码来提取受密码保护的档案。因此密码将保持隐藏状态,但用户仍然可以在不知道密码的情况下提取存档。
问题是如果我通过参数发送密码,它会显示在命令行参数中。
set mypass=12345
unrar.exe x test.rar -p%mypass%
我试过也通过回声发送传递,但它似乎没有工作
@echo off
@echo 12345 | unrar.exe x test.rar -p
如何解决这个问题?
答案 0 :(得分:0)
使用@echo off是正确的方法。
请注意,当您致电
时@echo something
那"某事"即使您使用@echo off禁用了回声,也会始终显示。
此外,我同意Uli Gerhardt关于使用unrar.dll的信息,因为这样可以更好地控制提取过程。
编辑:如果您将此代码放入批处理文件(* .bat),您将看到命令不会显示。
@echo off
set mypass=12345
notepad %mypass%
从应用程序发送命令时应该同样适用。
EDIT2:你知道你甚至可以找到已经制作的Delphi组件,它可以让你使用unrar.dll吗?
请在本页底部查看:http://www.rarlab.com/rar_add.htm
答案 1 :(得分:0)
unrar可执行文件不提供安全接受存档密码的机制。它以纯文本形式接受。没有远离那个,你应该停止尝试这样做。
使用rar DLL接口代替,它会略微提高混淆程度。当然,适度确定的黑客可以检查正在传递的参数。或者检查正在提取的文件。