在Rails中加密/解密的最简单快捷的方法?

时间:2014-01-06 06:31:53

标签: ruby-on-rails ruby encryption ruby-on-rails-4

我正在向我想要加密的客户端发送一个值(如果/当收到回来的话,则会解密)。

这不是超敏感数据,我只是不想用简单的裸文发送它。

我知道ActiveSupport::MessageEncryptor但它似乎需要太多步骤来满足我的基本需求。也许我正在过度思考它并且没有涉及到引擎盖下的繁重计算但是我直觉地寻找更像是如何设置/阅读已签名的cookie的工作。

如果我不需要包含Rails 4开箱即用的东西,那将是一个很大的优势。

2 个答案:

答案 0 :(得分:2)

为什么不把它放在会话中?然后它将成为会话存储中加密cookie的一部分。

您可以使用session[:message] = "my message"设置值,并使用session[:message]获取该值。

答案 1 :(得分:1)

使用包含在ruby @ OpenSSL中的Cipher似乎很简单。 在irb上试试这个:

require "openssl"
data = "Very, very confidential data"

cipher = OpenSSL::Cipher::AES.new(128, :CBC)
cipher.encrypt
key = cipher.random_key
iv = cipher.random_iv

encrypted = cipher.update(data) + cipher.final
decipher = OpenSSL::Cipher::AES.new(128, :CBC)
decipher.decrypt
decipher.key = key
decipher.iv = iv

plain = decipher.update(encrypted) + decipher.final
puts data == plain