当前位置:编程学习 > JAVA >>

java程序中登录密码输错三次账户锁定

java程序中登录密码输错三次账户锁定,怎么实现求源码啊 --------------------编程问答-------------------- 这个倒是没做过,不过原理应该是这样:在前台设置cookies,记录登陆的次数和对应的用户名……当错误达到3次,就向后台发送请求,锁定该用户名 --------------------编程问答-------------------- 用cookie的方式可以实现,但是有个缺点,清cookie后或者换台机器的话,账户又可以继续登录了。
可以在数据库中记录用户错误次数,通过后台控制。 --------------------编程问答-------------------- 我想在表中加个状态是不是可以?如果是非法登录的话就直接返回false.. --------------------编程问答--------------------    顶上去;、 --------------------编程问答-------------------- 在后端表里面做一个计数器和一个flag, 每次用户名登陆先检查这个FLAG是不是锁定,如果不是,验证用户名和密码是否匹配。如果这个用户名登陆密码和数据库储存的密码不一样,计数器就加一,如果计数器等于三,把那个flag设置成锁定,等这个用户名再次登陆的时候,如果flag设置成锁定,就返回错误 --------------------编程问答-------------------- 可以再表中加个登陆日期,和密码输错次数   如果是当天的,并且密码输错 则密码说错次数加1,直到3锁定

登陆的时候做个判断,上次登陆时间是不是当天,且输错次数做个判断、 只要登陆成功时,把输错次数变成0 --------------------编程问答--------------------
引用 6 楼 huishou372345292 的回复:
可以再表中加个登陆日期,和密码输错次数   如果是当天的,并且密码输错 则密码说错次数加1,直到3锁定

登陆的时候做个判断,上次登陆时间是不是当天,且输错次数做个判断、 只要登陆成功时,把输错次数变成0


有效期一天太短了,可以设置成一个月或者半年 --------------------编程问答--------------------
引用 5 楼 soton_dolphin 的回复:
在后端表里面做一个计数器和一个flag, 每次用户名登陆先检查这个FLAG是不是锁定,如果不是,验证用户名和密码是否匹配。如果这个用户名登陆密码和数据库储存的密码不一样,计数器就加一,如果计数器等于三,把那个flag设置成锁定,等这个用户名再次登陆的时候,如果flag设置成锁定,就返回错误
这样就行,但最好是先验证用户名密码是否匹配 --------------------编程问答--------------------
引用 楼主 iewuy 的回复:
java程序中登录密码输错三次账户锁定,怎么实现求源码啊

用户清缓存怎么搞呢? --------------------编程问答-------------------- 可以在applicationcontext里维护一张登录名记录的hashtable,也可以在数据库里记录,是单独分表记录还是直接在用户表记录,需要记录历史登陆记录还是只需要记录最近几次次记录就看需求了,复杂有复杂的设计,简单有简单的设计,不要靠cookie和session记录就行,还不如ip可靠,当然ip也不是绝对可靠。
比如五分钟内连续三次错误就锁定五分钟,那就记录最近两次错误登陆时间登陆的时候就判断是不是锁定,如果锁定就判断最后一次登陆时间和当前时间之间的间隔有没有超过五分钟,超过了就解除锁定,没超过就继续锁定。
然后再这是第几次错误,如果是前两次就只记录,如果是三次以上就判断第一次与当前时间间隔有没有在五分钟内,如果在就锁定并记录,如果不在就记录并清除第一次,如果登陆成功就全部清除。
登陆记录可以用链表,application里记录不需要频繁的读写数据库,速度快,但会占用jvm内存。
同八楼,记录前先验证不然不管用户名存不存在都记录那不是内存溢出就是数据库撑爆还降低效率。还可以写一个维护线程定时清除不需要的记录
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,