是否有可能将输入值加密到某些加密,如下所示:
http://dzone.com/snippets/quick-two-encryption
但是在视野中这样做,所以视图没有太多逻辑,也许做帮助?但是如何?
例如更改此类字符串
<input name="person" value="1" />
到
<input name="c4ca4238a0b923820dcc509a6f75849b" value="1" />
那么,如何在rails中编码输入名称?
另外请不要问我为什么需要这样做...有答案吗?给它......
答案 0 :(得分:1)
尝试生成帮助器,然后放在那里
module EncryptorHelper
def encrypt_string(name)
secret = Digest::SHA1.hexdigest(name)
a = ActiveSupport::MessageEncryptor.new(secret)
b = a.encrypt("parts")
b
end
end
然后你可以在你的输入中调用ecnrypt_string(123)
答案 1 :(得分:0)
干净的想法。这根本没有经过测试,但你会明白这一点。难道你不能使用method_missing传递一个加密的字符串来找出真正的方法名称吗?有那个处理getter和setter。有点像...
form.html.haml
# You'll need to create an encrypt helper.
form_for @model do |f|
f.input encrypt(person)
model.rb
class Model
def method_missing sym, *args
secret = Digest::SHA1.hexdigest("yourpass")
a = ActiveSupport::MessageEncryptor.new(secret)
if sym =~ /^(\w+)=$/
instance_variable_set "@#{a.decrypt($1)}", args[0]
else
instance_variable_get "@#{a.decrypt(sym)}"
end
end
end