没有真正的理由不采用256位AES。确保在CBC模式和PKCS#7填充中使用它。如您所说,快速又安全。
我已经读过(未经测试),河豚的速度可能会稍快…但是,河豚的主要缺点是设置时间长,这对您的情况不利。另外,AES更加“证明”。
假设确实 有
必要对cookie数据进行对称加密。正如其他人指出的那样,这确实是没有必要的,只有极少数情况下别无选择。通常,它更适合您更改设计,并返回到随机会话标识符,或者在必要时返回单向哈希(使用SHA-256)。
在您的情况下,除了“常规”随机会话标识符外,您的问题是“记住我”功能-这也应实现为:
- 一个长的随机数,存储在数据库中并映射到用户帐户;
- 或包含例如用户名,时间戳,标签盐和机密服务器密钥的密钥哈希(例如HMAC)。当然,所有这些都可以在服务器端进行验证。
似乎我们已经解决了您原来的特定问题的主题,并通过更改设计来更改了问题的基础…。
只要我们这样做,我也强烈建议您 反对 此功能永久“记住我”的原因有几个,其中最大的原因是:
- 使某人更有可能窃取该用户的记住密钥,从而使他们能够欺骗用户的身份(然后可能更改其密码);
- CSRF跨站请求伪造。您的功能将有效地允许匿名攻击者导致未知用户向您的应用程序提交“经过身份验证的”请求,即使没有实际登录也是如此。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)