Rails OpenSSL加密/解密?

时间:2014-07-15 12:16:26

标签: ruby-on-rails ruby encryption cryptography

继承的ruby代码库,它使用attr_encrypted gem来加密属性。

我想解密值并加密它们。简单的任务!

解密有效。

再次加密并不起作用?

这里要解密的代码:

Encryptor.decrypt(Base64.decode64("mbgtmCefo8NZOWrSmrq0frYpMR8nRFRz83CkX7VqxAs="), :key=>'95f94bbd12fb60c156aea0c5fead8498b10cff780624b064a98d9aefa74e6a43b2cf7bfb4d0ab5fa44541b5e5385ccf0ef0e1bb563a6ea618f14c2770b583ba')
 => "4763671098237511"

此处加密的代码:

Encryptor.encrypt(Base64.encode64("4763671098237511"), :key=>'95f94bbd12fb60c156aea0c5fead8498b10cff780624b064a98d9aefa74e6a43b2cf7bfb4d0ab5fa44541b5e5385ccf0ef0e1bb563a6ea618f14c2770b583ba')
 => "\xC7\xB4\xEB\xE8d\x11l\xB2\xC3\xCDd8\x1E\x88\xDD\xF3\x93\x96H6*\xD2!\f\x9C%F\x14\xE7\xC7\xF3\x1F"

我期待的代码:

"mbgtmCefo8NZOWrSmrq0frYpMR8nRFRz83CkX7VqxAs="

有人可以澄清这个问题吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

您应该加密明文以创建密文,然后解密密文,以便您可以再次检索明文。解密明文将为您提供随机垃圾,因为它期望输入由加密方法创建。例如,加密也应该存储IV并填充明文。

首先加密,然后解密,而不是相反。解密然后加密适用于某些密码模式,但它肯定不适用于使用CBC操作模式的更高级别的功能。