如何通过 Ruby 解压受密码保护的文件

发布于 2024-07-22 14:32:54 字数 116 浏览 6 评论 0原文

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

有人知道一些代码或库可以做到这一点吗?

I'd like to unzip an encrypted/password protected file via a Ruby script without dropping down to a system call. I currently use the rubyzip library to unzip files but don't see an option for working with encrypted files.

Anyone know of some code or a library that will do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

月隐月明月朦胧 2024-07-29 14:32:54

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

Archive-zip

使用示例:

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

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

Yes, there is one that works great by the way, I've just tried it and found your post in the middle..

Archive-zip

Example of use:

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

I'm sure that this will be useful for someone else looking for the same on google :)

以往的大感动 2024-07-29 14:32:54

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

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

Sometimes the right answer is to use a system call. That's why it's there.

True, it's slower and less elegant than using a library or a method. But it's cheaper than paying a tax to someone (a royalty payment) and much much faster than writing a new library yourself.

浅忆 2024-07-29 14:32:54

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

The only one I've heard of to date is the Chilkat Ruby Zip library, which isn't free. The RubyZip library does not support password-protected files because the underlying library, zlib, doesn't do so either.

白色秋天 2024-07-29 14:32:54

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

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

DotNetZip 是免费的。

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

Not a ruby library, but...maybe a free option.

If your app runs on Windows, you can use the DotNetZip library, via the new COM interface. It does password-protected files, either Zip encryption (weak), or WinZip-compatible AES encryption.

DotNetZip is free.

If Windows is out of the question, there may be another possibility. DotNetZip runs in Mono, too. I don't know if there are Ruby-to-Mono integration mechanisms to allow you to call from Ruby to Mono on other platforms, but if they exist, they also may let you call into DotNetZip.

染墨丶若流云 2024-07-29 14:32:54

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

There's always the option of using JRuby + a Java library for handling zip files. http://www.lingala.net/zip4j handles (encrypted) zip files and is Apache licensed. I've not used it yet, but it should work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文