unoh.github.com

rubyで手軽に暗号化文字列やハッシュ値を生成

2007-05-24 12:06:24 +0000

こんにちは django派閥とrails派閥の争いが激しい最近のウノウです。ちなみに若干railsが優勢です。

require 'openssl'
def encrypt(aaa, solt = 'solt')
  enc = OpenSSL::Cipher::Cipher.new('aes256')
  enc.encrypt
  enc.pkcs5_keyivgen(solt)
  ((enc.update(aaa) + enc.final).unpack("H*")).to_s
  rescue
    false
end
def decrypt(bbb, solt = 'solt')
  dec = OpenSSL::Cipher::Cipher.new('aes256') 
  dec.decrypt 
  dec.pkcs5_keyivgen(solt)
  (dec.update(Array.new([bbb]).pack("H*")) + dec.final)
  rescue  
    false 
end 
def hash(ccc)
    OpenSSL::Digest::SHA1.new(ccc)
end 
    
secret = "himitsu"
solt   = "unoh"
enc = encrypt(secret, solt) 
p enc 
dec = decrypt(enc, solt)
p dec 
p hash(secret)

#--
#"2906e1eca22b8b74ab2a14cbf185185c"
#"himitsu"
#c44ade485240212403b41eba503fcb222d190cd0


便利ですね。
http://www.ruby-lang.org/ja/man/?cmd=view;name=openssl
http://www.ruby-lang.org/ja/man/?cmd=view;name=OpenSSL%3A%3ACipher%3A%3ACipher