2009-05-26 115 views
3

我想通過Ruby腳本解壓縮加密/密碼保護的文件,而不必下降到系統調用。我目前使用rubyzip庫來解壓縮文件,但沒有看到使用加密文件的選項。如何通過Ruby解壓縮密碼保護的文件

任何人都知道一些代碼或庫會做到這一點?

+0

需求改變了,我不必解壓密碼保護的文件了,所以我使用Ruby Zip進行解壓縮。感謝您的答案。 – digitalsanctum 2009-06-09 18:09:16

回答

1

我迄今爲止唯一聽說的是Chilkat Ruby Zip library,這不是免費的。 RubyZip庫不支持密碼保護文件,因爲底層庫zlib也不支持。

2

有時候正確的答案是使用系統調用。這就是爲什麼它在那裏。

確實,它比使用庫或方法更慢,更不優雅。但這比向某人支付稅款(特許權使用費)要便宜得多,而且要比自己寫一個新圖書館要快得多。

0

不是一個紅寶石圖書館,但...也許是一個免費的選擇。

如果您的應用程序在Windows上運行,則可以通過新的COM接口使用DotNetZip庫。它執行受密碼保護的文件,Zip加密(弱)或WinZip兼容的AES加密。

DotNetZip是免費的。

如果Windows不存在問題,則可能有另一種可能性。 DotNetZip也在Mono中運行。我不知道是否有Ruby-to-Mono集成機制允許您在其他平臺上從Ruby調用Mono,但是如果它們存在,它們也可以讓您調用DotNetZip。

0

總是有選擇使用JRuby + Java庫來處理zip文件。 http://www.lingala.net/zip4j可處理(加密)zip文件並獲得Apache許可。我還沒有使用它,但它應該工作。

3

是的,有一個由這樣的偉大工程,我剛剛試了一下,發現在中間的帖子..使用

Archive-zip

例子:

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

我敢肯定,這將有助於其他人尋找相同的谷歌:)

+1

你的回答對於通過谷歌搜索的人有用;)可以通過`gem install archive-zip`進行安裝,並且沒有問題。 – knut 2014-01-03 22:15:06

相關問題