本帖最后由 skyfree 于 2010-11-27 07:57 编辑
一般来说我使用7z的独立命令行工具7za.exe来解压7z压缩包的。现在我有一个朋友需要用AU3程序自动解压带有加密的7Z压缩包,当然密码是他和我约定好的。
例如一个压缩包名为test.7z(假设位于D盘根目录),解压密码为123456,将7za.exe放置于临时目录(假设为$TempDir),那么自动解压test.7z的代码为:
RunWait($TempDir & "\7za.exe" & " x " & "D:\test.7z" & _
" -p" & "123456" & _
" -o" & "E:\Test" & _
" -r -y", "", @SW_HIDE)
这样的确可以实现自动解压带加密的7Z压缩包到指定位置,但由于使用的是命令行,其实与使用CMD没什么区别。通过某些进程跟踪软件,可以跟踪出7za.exe的执行参数,从而发现"-p123456"这一段,从而就获取了密码。
这个现象是我朋友与我都不想看到的,辛苦加密的数据包可以被轻易获得加密密码。请问各位坛友如何解决这个问题?
(鄙人知道Delphi有7z的API,但才疏学浅看不懂Delphi,如何用AU3实现?)
如能解决此问题,我愿以RMB付费,特此感谢! |