Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > opensslライブラリ > OpenSSL::Cipherクラス
クラスの継承リスト: OpenSSL::Cipher < Object < Kernel
共通鍵暗号のために抽象化されたインターフェースを提供するクラスです。
基本的にこのクラスを直接使ってデータを暗号化することは 避けてください。通常はより高水準なインターフェースが利用可能な はずです。必要なのは暗号アルゴリズムを指定するため OpenSSL::Cipher.new で暗号オブジェクトを生成することだけでしょう。
もし、このクラスを直接利用して暗号化する場合は、暗号の鍵や IV(Initialization Vector)の取り扱いについて正しく理解してからに してください。
以下の手順で利用します。
ruby 1.8.3 から Cast5 と Idea が CAST5 と IDEA に改名されました。
AES のようなブロック暗号では暗号方式を選択する際に モードを指定する必要があります。このライブラリでは 以下のような文字列でモードを指定できます。
これらの文字列の意味は openssl/参考文献 などで調べてください。 AES を用いる場合、通常は CBC を用いれば良いでしょう。 選択肢によっては安全性に問題があるので気をつけてください。
require 'openssl' p a123 = "0123456789" pass = "hogehoge" enc = OpenSSL::Cipher::DES.new enc.encrypt enc.pkcs5_keyivgen(pass) p a = enc.update(a123) p b = enc.final s = a + b dec = OpenSSL::Cipher::DES.new dec.decrypt dec.pkcs5_keyivgen(pass) p a = dec.update(s) p b = dec.final p a + b #=> "0123456789"
定義 | 説明 | |
---|---|---|
ciphers -> [String]
|
利用可能な暗号方式名を文字列の配列で返します。 |
|
new(name) -> OpenSSL::Cipher
|
共通鍵暗号のアルゴリズム名を渡し、対応する暗号オブジェクトを生成します。 |
定義 | 説明 | |
---|---|---|
block_size -> Integer
|
暗号化のブロックのサイズをバイト数で返します。 |
|
decrypt(pass, iv = nil) -> self
|
復号化の準備をします。 |
|
encrypt -> self
|
暗号化の準備をします。 |
|
final -> String
|
暗号オブジェクト内部に残されたデータを暗号化/復号化し、文字列で 返します。 |
|
iv=(iv)
|
IV(Initialization Vector) を設定します。 |
|
iv_len -> Integer
|
必要な IV(Initialization Vector) の長さをバイト数で返します。 |
|
key=(key)
|
暗号鍵を設定します。 |
|
key_len -> Integer
|
暗号鍵の長さをバイト数で返します。 |
|
key_len=(length)
|
暗号鍵の長さを変更します。 |
|
name -> String
|
暗号化アルゴリズムの名前を文字列で返します。 |
|
padding=(padding)
|
パディングを設定します。 |
|
pkcs5_keyivgen(pass, salt=nil, num=2048, digest="md5") -> nil
|
pass と salt から鍵と IV を生成し、暗号オブジェクトに設定します。 |
|
random_iv -> String
|
IV を乱数で生成し、暗号オブジェクトに設定します。 |
|
random_key -> String
|
鍵を乱数で生成し、暗号オブジェクトに設定します。 |
|
reset -> self
|
内部状態をリセットします。 |
|
update(data) -> String
|
渡された文字列を暗号化もしくは復号化して文字列として返します。 |
==
===
=~
__id__
__send__
_dump
class
clone
dclone
display
enum_for
eql?
equal?
extend
freeze
frozen?
hash
initialize
initialize_copy
inspect
instance_eval
instance_exec
instance_of?
instance_variable_defined?
instance_variable_get
instance_variable_set
instance_variables
is_a?
marshal_dump
marshal_load
method
method_missing
methods
nil?
pretty_inspect
pretty_print
pretty_print_cycle
pretty_print_inspect
pretty_print_instance_variables
private_methods
protected_methods
public_methods
remove_instance_variable
respond_to?
singleton_method_added
singleton_method_removed
singleton_method_undefined
singleton_methods
taint
tainted?
tap
to_a
to_ary
to_hash
to_int
to_io
to_proc
to_regexp
to_s
to_str
to_yaml
to_yaml_properties
to_yaml_style
untaint