這裡主要的實現方式是資料庫表+**。當然這種方式適合練練手,還有一種更簡便的就是用快取實現,**節省很多。
基本邏輯是登陸失敗累計次數。三次丟擲限制定語。
限定根據當前時間和資料庫鎖定時間進行判斷是否解鎖。
最後資料狀態修改為0.
**
public yhxx getlogin(string username, string pwd) throws serviceexception
string yhdlm = yh.getyhdlm();
if (stringutils.isempty(yh))
int num = 0;
if (!yh.getyhdlmm().equals(md5util.encode(pwd))) else
num = yhdlxx.getfailurenum() + 1;
//存在則,登陸次數累計,到三次鎖定,並加上鎖定時間
yhdlxx.setfailurenum(num);
if (num == errorpasswordtimes)
if (num == errorpasswordtimes)
}int i = errorpasswordtimes - yhdlxx.getfailurenum();
throw new serviceexception("p-1", "密碼錯誤!您還有" + i + "次機會!");
}//根據鎖定時間和當前時間得到之間的分鐘數。
if (yhdlxx != null && yhdlxx.getfailurenum() - errorpasswordtimes >= 0)
}//登陸成清除資料
yhdlxx yhdlxx1 = new yhdlxx();
string uid = yh.getxxbm();
yhdlxx1.setuid(uid);
yhdlxx1.setfailurenum(num);
yhdlxx1.setlocktime(null);
return yh;
}
資料庫
僅供參考!
登陸失敗賬號鎖定
一 session 清空登入失敗記錄 cleanfailnum session,username 校驗使用者登入失敗次數 新增使用者登入失敗次數 清理使用者登入失敗的記錄 二 map 移出非安全登入記錄 param index private void removejptloginsecurity ...
python 登陸三次錯誤退出
登陸出現三次錯誤,退出程式 1 登陸 2def login 3 a input 4if a kate 5 b input 6if b 666666 7print 登入成功!8return true 9else 10 print 賬戶或密碼錯誤 11return false 12else 13 b i...
linux設定登陸n次失敗鎖定賬號
本文要實現的功能 如果有人惡意嘗試破解你的伺服器密碼,那麼這個功能就能幫你起到一定的作用,當嘗試密碼錯誤超過設定的次數後,就會鎖定該賬戶多長時間 自行設定 時間過後即可自行解鎖,這樣可以增加攻擊者的成本。伺服器系統 centos6.5 centos其他版本應該也是可以的,請自行測試 cp etc p...