网站cookie的加解密导致大量用户无法登陆,原因是有大量非法cookie请求导致+chiper解密处理代码;
(加解密用的是cryptix Blowfish算法,其他的没有验证)
扫了一圈终于发现原因:
程序里为提高性能通过ThreadLocal每个线程持有一个加解密的Chiper对象;类似
http://blog.csdn.net/guanxinquan/article/details/10224229
在密文正常的情况下一切正常没有错误,但是如果有错误的密文进来解密,就会导致下次正常的密文解密失败,
而下下次正常密文会解密成功;
所有一个非法的cookie的http请求就会脏一个服务器线程的chiper对象,如果这个线程就不能处理下一次的正常的登录;
如果非法请求非常多,就会导致大量登录失败;
解决方法:
解密错误或者异常的重置chiper对象