Sai*_*aim 1 ruby encryption deterministic ruby-on-rails
是否ActiveSupport::MessageEncryptor支持确定性加密,以便每次加密特定字符串时都获得相同的加密值?如果没有,是否还有其他支持确定性加密的Ruby库?
我的目标是每次加密字符串时获得相同的加密值,我也应该能够将其解密为原始值.
谢谢.
你会得到不同的密码,因为加密的ActiveSupport::MessageEncryptor使用默认OpenSSL需要iv来防止攻击者推断加密消息的各段之间的关系.我强烈建议你不要乱用它,因为你打开攻击者推断加密密钥的方法.
但是,如果您仍想这样做,请查看ruby 的OpenSSL文档.应该有一种无矢量加密的方法.
因为它具有很高的安全风险,所以我不会在答案中添加代码来保护他人免受不必要的循环漏洞的影响.
Grz*_*orz -1
当然:只需使用相同的密钥即可获得相同的加密
x = ActiveSupport::MessageEncryptor.new('12345678901234567890123456789012').encrypt_and_sign('foo')
=> "bXJmRUczdjVXRFdLTitUcmkvRnk1UT09LS0vb2ZYdDRybGdWbmNXMUI1VDNnQzVBPT0=--13232bbe31d966f7d1df3aaa6fcc1cdc9eea60a1"
ActiveSupport::MessageEncryptor.new('12345678901234567890123456789012').decrypt_and_verify(x)
=> "foo"
Run Code Online (Sandbox Code Playgroud)
很难说为什么你会得到不同的结果,因为你没有发布任何代码......
| 归档时间: |
|
| 查看次数: |
559 次 |
| 最近记录: |