- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Ruby 暗号化したファイルの復号について)
Rubyファイル暗号化と復号について
このQ&Aのポイント
- Rubyでファイルを暗号化する方法と、暗号化されたファイルを復号する方法について質問です。
- 質問者はRuby 1.9.3を使用しており、encrypt.rbとdecrypt.rbの2つのスクリプトを使用しています。
- encrypt.rbはファイルをAES256で暗号化し、decrypt.rbは暗号化されたファイルを復号しますが、復号に失敗しています。どのようにすれば復号できるのか教えていただきたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ファイルの復号 decrypt.rb のほうですが、 require 'openssl' が抜けています。 # encoding: cp932 の次の行へ require 'openssl' を追加してください。
その他の回答 (1)
- Gotthold
- ベストアンサー率47% (396/832)
回答No.2
> パスワードはキーと同じものだと考えていたのですが、 いいえ、(少なくともこの例では)違います。 instance method OpenSSL::Cipher#pkcs5_keyivgen http://docs.ruby-lang.org/ja/2.0.0/method/OpenSSL=3a=3aCipher/i/pkcs5_keyivgen.html 上記ページに記載されているとおり pkcs5_keyivgenメソッドは pass(と指定されていればsalt)からキーとIVを生成します。 passをそのままキーにしているわけではありません。
質問者
お礼
再度回答いただきありがとうございます。 パスワードがそのままキーになっているわけではないため、 パスワードが'abc'でも暗号化することができたのですね。 リファレンスマニュアルを見て、さらに勉強していきたいと思います。 ありがとうございました。
補足
回答ありがとうございます。 無事、ファイルを復号することができました。 もう一点、教えていただきたいのですが、 暗号化の際にAES256クラスを使用した場合、キー長は256ビットとなるのですが、 例えばパスワードを'abc'としても暗号化することができました。 パスワードはキーと同じものだと考えていたのですが、 そうであればパスワードの長さも記号と英数字合わせて32バイトにする必要はないのでしょうか。