attr_encryptor坏解密错误

时间:2012-07-09 15:05:33

标签: ruby-on-rails attr-encrypted

我使用danpal / attr_encryptor gem来加密我的ActiveRecord模型中的某些属性。

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

并出现以下错误

OpenSSL::Cipher::CipherError: bad decrypt

然后我尝试在rails控制台中使用encrypt_number,并在重新启动控制台时看到相同值'number'字段的不同值。为什么呢?

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

1 个答案:

答案 0 :(得分:0)

如果解密错误,您是否在数据库中创建了encrypted_number_ivencrypted_number_salt列,并且是自动填充它们的宝石?

对于encrypt_number,您需要传递:iv:salt个选项(每次都相同)才能在输出中接收相同的密文。