使用gem:https://github.com/attr-encrypted/attr_encrypted
问题1:
创建记录并进行加密时,我进入控制台(通过Heroku)并执行以下操作:
model = Model.find(1)
model.attribute
错误:OpenSSL::Cipher::CipherError ()
问题2:
我创建了记录,然后进行编辑,参数显示为解密(不知道它如何在控制台中不起作用,但是可以)...
一旦我重新提交(git push heroku master)或重新启动heroku,编辑页面就会给我这个错误:ActionView::Template::Error ()
错误出现在text_field属性publishable key
我的设置:
模式:
t.string "encrypted_publishable_key"
t.string "encrypted_publishable_key_iv"
t.string "encrypted_secret_key"
t.string "encrypted_secret_key_iv"
t.index ["encrypted_publishable_key_iv"], name: "index_stripe_apis_on_encrypted_publishable_key_iv", unique: true
t.index ["encrypted_secret_key_iv"], name: "index_stripe_apis_on_encrypted_secret_key_iv", unique: true
试图删除索引但仍然存在错误。
型号:
key = Base64.encode64(SecureRandom.random_bytes(32))
attr_encrypted :publishable_key, key: Base64.decode64(key)
attr_encrypted :secret_key, key: Base64.decode64(key)
也尝试过:
key = Base64.encode64(SecureRandom.random_bytes(32))
iv = Base64.encode64(SecureRandom.random_bytes(12))
attr_encrypted :publishable_key, key: Base64.decode64(key), iv: Base64.decode64(iv)
attr_encrypted :secret_key, key: Base64.decode64(key), iv: Base64.decode64(iv)
没有key = Base64.encode64(SecureRandom.random_bytes(32))
出现错误“需要32个字节”。
使用上述方法,将保存属性,但是在解密时,无论是在视图还是在控制台中,都会出现错误:
iv must be 12 bytes or longer
我做错了什么不起作用?