使用2个加密字符串进行验证

时间:2013-03-05 17:17:12

标签: authentication cookies encryption redis

所以基本上我试图用cookie登录用户,不要查询DB以提高性能

这是一个简短的想法:

  1. 通过SSL传输所有内容
  2. 设置全局密钥A和密钥B
  3. 在注册和密码更改时生成随机验证字符串
  4. 使用A加密验证字符串,将其存储在cookie
  5. 使用B加密验证字符串,将其存储在cookie
  6. 当用户尝试登录时,我用A和B解密每个字符串,比较它们是否匹配
  7. 我想知道这是不是一个好主意 如果是:

    如何使用bouncycastle ASE-256,Digest或其他方式在Java中实际进行加密?

    通过将会话变量存储在超级快速数据库(如Redis)中与验证相比,此加密/解密过程对性能的影响程度

    如果不是: 我该怎么办..

1 个答案:

答案 0 :(得分:2)

您可以简单地将已知值与身份验证数据一起加密,在解密时验证数据是否存在于身份验证令牌(Cookie)中。无需使用两把钥匙。

与数据库的速度差异取决于数据库配置以及执行的加密。我宁愿首先选择一个经过验证的方案,只发明你自己的表现,你别无选择。

http://security.stackexchange.com上更好地验证了方案。