2006-08-30

_ [rails] polymorphic

ActiveRecord::EagerLoadPolymorphicError: \
Can not eagerly load the polymorphic association :configurable

との冷たいお言葉。

_ [ruby] openssl

さらに続き

$ echo -n "nov_at_yo.rim.or.jp" | \
  openssl enc -bf-cbc -nosalt -pass pass:hoge -a
rxIuxUQAq5BcbsqFf+dKozcT2GBhcNE6 
$ cat bf-cbc.rb
require "openssl"
enc = OpenSSL::Cipher::BF.new("CBC")
enc.encrypt
enc.key_len = 4
enc.key = "hoge"
a = enc.update("nov_at_yo.rim.or.jp")
b = enc.final
print [a + b].pack("m")
$ ruby bf-cbc.rb
#=> 3gBV0Tib/6tn6GpKfewxF5LV26HdnlZN

全然違うぞ。

$ echo -n "nov_at_yo.rim.or.jp" | \
  openssl enc -bf-cbc -nosalt -pass pass:hoge -a -p
key=EA703E7AA1EFDA0064EAA507D9E8AB7E
iv =63413AFCBF321FFB
rxIuxUQAq5BcbsqFf+dKozcT2GBhcNE6
$ cat bf-cbc.rb
require "openssl"
enc = OpenSSL::Cipher::BF.new("CBC")
enc.encrypt
enc.key = [ARGV.shift].pack("H*")
enc.iv = [ARGV.shift].pack("H*")
a = enc.update("nov_at_yo.rim.or.jp")
b = enc.final
print [a + b].pack("m")
$ ruby bf-cbc.rb EA703E7AA1EFDA0064EAA507D9E8AB7E 63413AFCBF321FFB
rxIuxUQAq5BcbsqFf+dKozcT2GBhcNE6

こちらは一致。キーが短かったり、iv を指定しないとダメなのかな。

$ cat bf-cbc.rb
require "openssl"
enc = OpenSSL::Cipher::BF.new("CBC")
enc.encrypt
enc.key = "hoge" * 4
enc.iv = "hoge" * 2
a = enc.update("nov_at_yo.rim.or.jp")
b = enc.final
print [a + b].pack("m")
zKmD1BLIesRC988Yj3lcXXbQUIuL2rPW
$ echo -n "nov_at_yo.rim.or.jp" | \
  openssl enc -bf-cbc -nosalt -a \
  -K 686f6765686f6765686f6765686f6765 -iv 686f6765686f6765
zKmD1BLIesRC988Yj3lcXXbQUIuL2rPW

ということみたい。pkcs5_keyivgen に pass と salt と 0 を渡した方が楽、 ということでいいのかな。

[]