3

我想通过 Ruby 脚本解压缩加密/受密码保护的文件,而不需要下拉到系统调用。我目前使用 ruby​​zip 库来解压缩文件,但没有看到处理加密文件的选项。

任何人都知道一些代码或库可以做到这一点?

4

5 回答 5

4

是的,顺便说一下,有一个效果很好,我刚试过,发现你的帖子在中间..

存档-zip

使用示例:

require 'archive/zip'
Archive::Zip.extract('example5.zip', 'a_destination', :password => 'seakrit')

我相信这对于在谷歌上寻找相同内容的其他人会很有用:)

于 2013-03-06T19:21:32.673 回答
2

有时正确的答案是使用系统调用。这就是它在那里的原因。

的确,它比使用库或方法更慢且更不优雅。但它比向某人纳税(版税)便宜得多,而且比自己编写一个新库要快得多。

于 2009-05-26T14:38:43.227 回答
1

迄今为止,我只听说过Chilkat Ruby Zip 库,它不是免费的。RubyZip 库不支持受密码保护的文件,因为底层库 zlib 也不支持。

于 2009-05-26T13:50:40.310 回答
0

不是 ruby​​ 库,但是......也许是一个免费的选择。

如果您的应用程序在 Windows 上运行,您可以通过新的 COM 接口使用DotNetZip库。它执行受密码保护的文件,无论是 Zip 加密(弱)还是与 WinZip 兼容的 AES 加密。

DotNetZip 是免费的。

如果Windows是不可能的,可能还有另一种可能性。DotNetZip 也可以在 Mono 中运行。我不知道是否有 Ruby-to-Mono 集成机制允许您在其他平台上从 Ruby 调用 Mono,但如果它们存在,它们也可能让您调用 DotNetZip。

于 2009-05-27T00:34:36.940 回答
0

总是可以选择使用 JRuby + 一个 Java 库来处理 zip 文件。 http://www.lingala.net/zip4j处理(加密的)zip 文件并且是 Apache 许可的。我还没有使用它,但它应该可以工作。

于 2012-02-25T23:06:19.687 回答