Trang 1 trong tổng số 1

Bài tập: Kiểm tra mật khẩu mạnh

Đã gửi: T7 01 Th6, 2024 22:56
bởi huynhbuutam
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ã: 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.