我想从用户那里获得一些输入并用密码加密.例如,用户给我:
String: 'Whackabad'
Password 'Holycrap'
Run Code Online (Sandbox Code Playgroud)
我想存储他们的字符串,加密,但能够在用户输入密码时再次解密字符串.完成此任务的最佳方法是什么?
你可以使用encrypted_stringsgem:
data = 'Whackabad'
password = 'Holycrap'
encrypted = data.encrypt(:symmetric, :algorithm => 'des-ecb', :password => password)
# => "N6gLAAL9d9lRjHUbh54Ctw==\n"
encrypted.decrypt(:symmetric, :algorithm => 'des-ecb', :password => password)
# => "Whackabad"
Run Code Online (Sandbox Code Playgroud)
该解决方案并没有加密,也没有任何地方存储密码-这是加密的数据谁,只有一个人知道密码就可以对数据进行解密.
如果您不希望任何人(包括网站管理员)在没有正确密码的情况下解密数据,这是一个很好的解决方案.