如何通过 Ruby 解压受密码保护的文件
我想通过 Ruby 脚本解压缩加密/密码保护的文件,而不需要进行系统调用。 我目前使用 rubyzip 库来解压缩文件,但没有看到处理加密文件的选项。
有人知道一些代码或库可以做到这一点吗?
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
是的,顺便说一句,有一个效果很好,我刚刚尝试过,发现你的帖子在中间。
Archive-zip
使用示例:
我确信这对于在 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:
I'm sure that this will be useful for someone else looking for the same on google :)
有时正确的答案是使用系统调用。 这就是它存在的原因。
确实,它比使用库或方法更慢且不太优雅。 但它比向某人纳税(版税支付)要便宜,而且比自己编写一个新库要快得多。
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.
迄今为止我唯一听说过的是 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.
不是一个 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.
始终可以选择使用 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.