Cmd 在不显示密码的情况下提取加密的rar存档

Cmd 在不显示密码的情况下提取加密的rar存档,cmd,passwords,archive,unrar,Cmd,Passwords,Archive,Unrar,我有了一个想法,做了一个类似于带钥匙的钥匙链的东西,它将包含可能的密码来提取我的密码保护档案。所以密码将保持隐藏,但用户仍然能够在不知道密码的情况下提取归档文件 问题是,若我通过参数发送密码,它将显示在命令行参数中 set mypass=12345 unrar.exe x test.rar -p%mypass% 我也尝试过通过echo发送pass,但似乎不起作用 @echo off @echo 12345 | unrar.exe x test.rar -p 如何解决这个问题?使用@echo

我有了一个想法,做了一个类似于带钥匙的钥匙链的东西,它将包含可能的密码来提取我的密码保护档案。所以密码将保持隐藏,但用户仍然能够在不知道密码的情况下提取归档文件

问题是,若我通过参数发送密码,它将显示在命令行参数中

set mypass=12345
unrar.exe x test.rar -p%mypass%
我也尝试过通过echo发送pass,但似乎不起作用

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

如何解决这个问题?

使用@echo off是正确的方法

请注意,当你打电话时

@echo something 
即使您使用@echo off禁用echo,也始终会显示“某物”

另外,我同意Uli Gerhardt关于使用unar.dll的看法,因为这将使您更好地控制提取过程

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

@echo off
set mypass=12345
notepad %mypass%
从应用程序发送命令时也应如此

EDIT2:你知道吗,你甚至可以找到已经制作好的Delphi组件,让你可以使用unar.dll


检查此页底部:

UNRR可执行文件不提供安全接受存档密码的机制。它以纯文本形式被接受。这是无法逃避的,你应该停止这样做


改为使用rar DLL接口,这会稍微增加混淆级别。当然,一个有适度决心的黑客可以检查正在传递的参数。或检查正在提取的文件

没有unrr.dll吗?我猜当你使用它而不是exe时,你会有更多的控制权。如果你不想让任何人读这篇文章,那就不要附和它!我不明白你为什么需要显示控制台。调用CreateProcess时使用CREATE_NO_窗口。是的,我检查了这个库,但wirar/unrar更有效,库只包含提取的基本功能,但winrar/unrar还可以像存储提取文件的NTFS精度的日期和时间等,我搜索最简单solution@Davidecho关闭了,但正如我所说,参数显示在命令行参数中,我假设您正在使用CreateProcess创建UNRR进程,因为这是一个编程问答网站。但是你只是在命令提示符下输入这个。我在为语境而挣扎。你标记了这个delphi。德尔菲酒店在哪里?我们应该去掉那个标签吗?