rubyzipを用いてパスワードをかけられたzipファイルを解凍するプログラムを作っています。
以下のようなプログラムを書いているのですがうまく動きません。
分からない点として、
・作成したパスワードと比較するパスワード即ちzipファイルを圧縮したときに設定されたパスワードはどこで取得できるのでしょうか?どのように比較できるのでしょうか?
以上、もし少しでも知っている方いらっしゃったらアドバイスなり教えていただけると助かります。
お願いします。
require 'zip' # 後々は引数で汎用的に # 引数で与えられたファイルを解凍する仕組みを作る zip_file_name = "password_zip_file.zip" # zipパスワードを作成 for num in 0..99999 do num = format('%05d', num) password = Zip::TraditionalDecrypter.new(num) # 第三引数にパスワードを指定、第2引数は0固定 Zip::InputStream.open(zip_file_name,0,password) do |input| entry = input.get_next_entry if File.exist?(entry.name) # entry.name...file名 Dir.mkdir(File.dirname(entry.name)) File.write(entry.name,input.read) puts "#{password} is right" break; else puts "#{password} is wrong" end end end
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。