Python 은 사용자 로그 인 을 실현 하고 세 번 의 오 류 를 입력 한 후 이 사용 자 를 잠 금 합 니 다.
나의 테스트 환경,win 7,python 3.5.1
사용자 이름과 비밀 번 호 를 입력 하 는 것 을 알려 줍 니 다.
잠 겨 있 는 지 여 부 를 판단 합 니 다.
사용자 이름과 비밀번호 가 일치 하 는 지 판단 합 니 다.
입력 오류 세 번,계 정 잠 금
사고의 방향
부호 블록
name = 'alex' #
passwd = '123456' #
lock_usr = [] #
for i in range(0,3):
usr_name = input(" :")
usr_passwd = input(" :")
if usr_name == name and usr_passwd == passwd:
print(" ...")
break
elif name != usr_name or passwd != usr_passwd:
if i < 2:
print(" , !")
else:
lock_usr.append(usr_name) #
print(" ! , ")
elif usr_name in lock_usr:
print(" , ")
PS:아래 는 c\#를 통 해 비밀 번 호 를 세 번 입력 하 는 오 류 를 실현 한 후 사용자 기능 을 잠 금 합 니 다.
#region
#region
///<summary>
///
///</summary>
private void IncErrorTime()
{
string ConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
using (SqlConnection conn = new SqlConnection(ConnStr))
{
using (SqlCommand updateCmd = conn.CreateCommand())
{
updateCmd.CommandText = "update T_Admin set errortime=errortime+1 whereUsername=@username";
updateCmd.Parameters.Add(new SqlParameter("username", cmbuserName.Text));
conn.Open();
updateCmd.ExecuteNonQuery();
}
}
}
#endregion
#region 0
///<summary>
/// 0
///</summary>
private void NotErrorTime()
{
string ConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
using (SqlConnection conn = new SqlConnection(ConnStr))
{
using (SqlCommand updateCmd = conn.CreateCommand())
{
updateCmd.CommandText = "update T_Admin set errortime=0 whereUsername=@username";
updateCmd.Parameters.Add(new SqlParameter("username", cmbuserName.Text));
conn.Open();
updateCmd.ExecuteNonQuery();
}
}
}
#endregion
#region 3 , 30
///<summary>
/// 3 , 30
///</summary>
private void IncLoginTime()
{
string ConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
using (SqlConnection conn = new SqlConnection(ConnStr))
{
using (SqlCommand updateCmd = conn.CreateCommand())
{
updateCmd.CommandText = "update T_Admin set logintime=@logintime whereUsername=@username";
DateTime logintime = DateTime.Now.AddMinutes(30);
updateCmd.Parameters.Add(new SqlParameter("username", cmbuserName.Text));
updateCmd.Parameters.Add(new SqlParameter("logintime", logintime.ToString()));
conn.Open();
updateCmd.ExecuteNonQuery();
}
}
}
#endregion
#region 3 30
private void BtnClike()
{
string username = cmbuserName.Text;
string password = txtPwd.Text;
string ConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
using (SqlConnection conn = new SqlConnection(ConnStr))
{
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from T_Admin whereusername=@username";
cmd.Parameters.Add(new SqlParameter("username", username));
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
if (reader.Read())
{
//
string dbpassword = reader.GetString(reader.GetOrdinal("password"));
DateTime logintime = reader.GetDateTime(reader.GetOrdinal("logintime"));
//
if (logintime > DateTime.Now)
{
MessageBox.Show(" ");
return;
}
//
if (dbpassword == txtPwd.Text)
{
NotErrorTime();
MessageBox.Show(" !");
}
//
else
{
int errortime = reader.GetInt32(reader.GetOrdinal("errortime"));
if (errortime >= 2)
{
MessageBox.Show(" !");
IncLoginTime();
NotErrorTime();
return;
}
MessageBox.Show(" !");
IncErrorTime();// , 1
}
}
else//
{
MessageBox.Show(" !");
return;
}
}
}
}
}
#endregion
#endregion
총결산위 에서 말 한 것 은 소 편 이 소개 한 Python 이 사용자 로그 인 을 실현 하고 오 류 를 세 번 입력 한 후에 이 사용 자 를 잠 그 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
준동형 비밀번호 좋아요.Python에 같은 종류의 암호 중 하나인 RSA 암호를 설치하여 같은 종류의 암호를 정확하게 사용합니다.이른바 준동형 암호란 암호화 상태에서 계산된 결과가 명문 계산 결과로 직접 변한 불가사의한 성격의 암호를 가리...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.