2012-07-09 36 views
1

我用danpal/attr_encryptor gem加密我的ActiveRecord模型中的一些属性。attr_encryptor坏解密错误

attr_encrypted :number, :charset => 'UTF-8', :key => 'vasya pupkin' 

,并得到了以下错误

OpenSSL::Cipher::CipherError: bad decrypt 

然后我试图使用轨道控制台encrypt_number,看到不同的值“数”字段的值相同,当我重新启动控制台。为什么?

rails c 
CreditCard.encrypt_number('hello') 
"tRO0BETHrh5J3gXv8WVntw==\n" 
quit 
rails c 
CreditCard.encrypt_number('hello') 
"kJSbe30RQyR+gy3oDXv5ZA==\n" 

回答

0

在恶劣的解密错误的情况下,有你创建你的数据库encrypted_number_ivencrypted_number_salt列,并在创业板自动填充他们的吗?

如果是encrypt_number,则需要通过:iv:salt选项(每次相同)在输出端接收相同的密文。