我在Ruby 2.0上运行了Ruby on Rails应用程序(v4.0.1虽然我认为不相关),但我允许用户将OAuth用于第三方服务,以便我访问他们的数据。
我已将应用程序的Consumer Key和Consumer Secret存储在源代码控制之外的环境变量中。
在OAuth / OAuth2舞蹈中的最后一次回调之后,我为每个用户提供了可用于访问其信息的令牌。
对于他们的登录凭据,我使用一种方式散列,不能将他们的密码以纯文本形式存储在我的数据库中,所以我想我应该用他们的令牌做类似的事情,但是因为我需要使用这些令牌来访问他们的数据,我需要能够重现纯文本,所以我想弄清楚对称加密的最佳方法是什么。
我打算将加密密钥存储为环境变量,然后使用https://gist.github.com/nono/2995118之类的东西来加密令牌。这样安全吗?
让人们使用这个https://github.com/reidmorrison/symmetric-encryption宝石吗?
我试图阻止自己重新发明轮子。有什么提示吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
我最终使用attr_encrypted
宝石 - https://github.com/attr-encrypted/attr_encrypted
我将我的密码添加到我的.env
文件中,以便它不受版本控制。
以下是您如何使用它:
attr_encrypted :email, :key => 'a secret key'