0

我有一个想法,用钥匙制作钥匙串之类的东西,其中将包含可能的密码来提取我受密码保护的档案。因此密码将保持隐藏状态,但用户仍然可以在不知道密码的情况下提取存档。

问题是如果我通过参数发送密码,它会显示在命令行参数中。

set mypass=12345
unrar.exe x test.rar -p%mypass%

我也试过通过回声发送通行证,但它似乎不起作用

@echo off
@echo 12345 | unrar.exe x test.rar -p

如何解决这个问题?

4

2 回答 2

0

unrar 可执行文件不提供安全接受存档密码的机制。它以纯文本形式接受。没有办法摆脱这一点,你应该停止尝试这样做。

改用 rar DLL 接口,这会稍微提高混淆程度。当然,适度确定的黑客可以检查正在传递的参数。或者检查正在提取的文件。

于 2015-03-09T07:56:06.037 回答
0

使用@echo off 是正确的方法。

请注意,当你打电话

@echo something 

即使您使用 @echo off 禁用了回声,也始终显示“某物”。

此外,我同意 Uli Gerhardt 关于使用 unrar.dll 的观点,因为这将使您更好地控制提取过程。

编辑:如果您将此代码放入批处理文件 (*.bat),您将看到不会显示命令。

@echo off
set mypass=12345
notepad %mypass%

从您的应用程序发送命令时同样适用。

EDIT2:你知道你甚至可以找到允许你使用 unrar.dll 的 Delphi 组件吗?

在本页底部查看:http ://www.rarlab.com/rar_add.htm

于 2015-03-09T07:31:46.627 回答