• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Ruby 暗号化したファイルの復号について)

Rubyファイル暗号化と復号について

このQ&Aのポイント
  • Rubyでファイルを暗号化する方法と、暗号化されたファイルを復号する方法について質問です。
  • 質問者はRuby 1.9.3を使用しており、encrypt.rbとdecrypt.rbの2つのスクリプトを使用しています。
  • encrypt.rbはファイルをAES256で暗号化し、decrypt.rbは暗号化されたファイルを復号しますが、復号に失敗しています。どのようにすれば復号できるのか教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

ファイルの復号 decrypt.rb のほうですが、 require 'openssl' が抜けています。 # encoding: cp932 の次の行へ require 'openssl' を追加してください。

jet888
質問者

補足

回答ありがとうございます。 無事、ファイルを復号することができました。 もう一点、教えていただきたいのですが、 暗号化の際にAES256クラスを使用した場合、キー長は256ビットとなるのですが、 例えばパスワードを'abc'としても暗号化することができました。 パスワードはキーと同じものだと考えていたのですが、 そうであればパスワードの長さも記号と英数字合わせて32バイトにする必要はないのでしょうか。

その他の回答 (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をそのままキーにしているわけではありません。

jet888
質問者

お礼

再度回答いただきありがとうございます。 パスワードがそのままキーになっているわけではないため、 パスワードが'abc'でも暗号化することができたのですね。 リファレンスマニュアルを見て、さらに勉強していきたいと思います。 ありがとうございました。

関連するQ&A