Bài tập: Kiểm tra mật khẩu mạnh
Đã gửi: T7 01 Th6, 2024 22:56
Viết chương trình kiểm tra mật khẩu nhập vào có phải là một mật khẩu mạnh hay không, giả định mật khẩu mạnh là mật khẩu thỏa mãn các yêu cầu sau:
- Dài ít nhất 8 kí tự
- Có chứa kí tự đặc biệt
- Có chứa kí tự số
- Có chứa kí tự HOA
- Có chứa kí tự thường
- Không có kí tự nào lặp lại
Ví dụ, "tamIT@10" là một mật khẩu mạnh
Chương trình minh họa:
Mã nguồn:
- Dài ít nhất 8 kí tự
- Có chứa kí tự đặc biệt
- Có chứa kí tự số
- Có chứa kí tự HOA
- Có chứa kí tự thường
- Không có kí tự nào lặp lại
Ví dụ, "tamIT@10" là một mật khẩu mạnh
Chương trình minh họa:
Mã: Chọn tất cả
Moi ban nhap mat khau: tamIT@10
Do la mot mat khau manh
Mã nguồn:
Mã: Chọn tất cả
Uses Crt;
Var i, j : LongInt;
S : AnsiString;
Check : Array[1..6] Of Byte;
Begin
ClrScr;
Write('Moi ban nhap mat khau: ');
ReadLn(S);
If Length(S) < 8 Then Check[1] := 0 Else Check[1] := 1;
For i := 2 To 5 Do Check[i] := 0;
For i := 1 To Length(S) Do
If Not ((S[i] In ['0'..'9']) Or (S[i] In ['A'..'Z']) Or (S[i] In ['a'..'z'])) Then
Begin
Check[2] := 1;
Break;
End;
For i := 1 To Length(S) Do
If S[i] In ['0'..'9'] Then
Begin
Check[3] := 1;
Break;
End;
For i := 1 To Length(S) Do
If S[i] In ['A'..'Z'] Then
Begin
Check[4] := 1;
Break;
End;
For i := 1 To Length(S) Do
If S[i] In ['a'..'z'] Then
Begin
Check[5] := 1;
Break;
End;
Check[6] := 1;
For i := 1 To Length(S) - 1 Do
For j := i + 1 To Length(S) Do
Begin
If S[i] = S[j] Then Check[6] := 0;
Break;
End;
For i := 1 To 6 Do
If Check[i] = 0 Then
Begin
Write('Do khong phai la mot mat khau manh');
ReadLn;
Exit;
End;
Write('Do la mot mat khau manh');
ReadLn;
End.