使用attr-encrypt gem加密,但无法解密

时间:2019-09-03 09:53:02

标签: ruby-on-rails ruby encryption attr-encrypted

使用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

我做错了什么不起作用?

0 个答案:

没有答案