2012-07-09 34 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選項(每次相同)在輸出端接收相同的密文。