2014-03-29 2 views
0

비밀번호 강도 검사기를 만들고 싶습니다. 비밀번호 입력란에 '비밀번호'를 입력하면 강도가 빨라집니다. 당신이 C++ Windows Form - If 문

**enter image description here**

녹색 나는 다음과 같은 경우 문을 사용하여 이런 짓을 한가는 다른 아무 것도 입력 :

try{ 

     if (password_textbox_form3->Text == "password") 

     { 
      strength_color_textbox->BackColor = Color::Red; 
     } 
     else 
     { 
      strength_color_textbox->BackColor = Color::Green; 
     } 
     } 
     catch (Exception^) 
     { 
      strength_color_textbox->BackColor = Color::Black; 
     } 

무엇 내가 지금 할 노력하고있어 어떤 난에 붙어있어, passwordscore라는 필드를 생성하는 방법입니다.이 필드는 ifstem 엔트 예를 들어 사용자가 입력 한 암호가 8 개 이상의 문자를 가지고, 다음이 점에서 나는 강도 상자의 색상을 (녹색 적색) 나는 시작했습니다

String^strength = password_textbox_form3->Text; //makes whatever the user enters in pw tb now called string 
     int passwordscore=0; 

     while // some sort of while loop to increment passwordscore? //passwordscore=passwordscore+1; 

     try{ 
     if (strength //contains more than 8 characters) 
     { 
      //passwordscore +10 
     } 
     if (strength //contains a special character !"£$%^&*) 
     { 
      //password score +10 
     } 

     if (passwordscore <=10) 
     { 
      strength_color_textbox->BackColor = Color::Red; 
     } 

     if (passwordscore <=20) 
     { 
      strength_colour_textbox->BackColor = Color::Green; 
     } 

그 방법을 변경할 수있는 경우 (10)를 추가 암호 텍스트 상자의 내용을 strength (나는)라고 불리는 문자열에 할당하고 힘이 8 자 이상인지를 보는 방법과 같은 IF 문에 붙어있다.

어떤 도움이나 지침이라도 고맙습니다. 감사합니다.

EDIT - 이걸 MSDN에서 찾았지만 C#으로 생각합니다. 뭘 하려구?

String^strength = password_textbox_form3->Text; 

     int numberOfDigits = 0; 
     int numberOfLetters = 0; 
     int numberOfSymbols = 0; 
     foreach (char c in strength) 
     { 
      if (char.IsDigit(c)) 
      { 
       numberOfDigits++; 
      } 
      else if (char.IsLetter(c)) 
      { 
       numberOfLetters++; 
      } 
      else if(char.IsSymbol(c)) 
      { 
       numberOfSymbols++; 
      } 
     } 

답변

2

문자로 암호를 가지고 가고, 문자 수> = 8 인 경우 10까지 강도 포인트를 설정할 수 있도록 암호 형태의 문자 수를 계산합니다. 또한 문자열을 사용하여 개별 문자를 벡터에 넣고 벡터의 색인을 사용하여 문자 수를 계산할 수 있습니다. FIRST 편집 할

편집 :

그냥 새 코드를 설명하는 게시 : 문자의 (a 알파벳 문자 (A, B, C) 숫자 (1,2,3) 또는 상징이 될 수 있습니다 + * ^) 분명히.

코드에서 일반 FOREACH 문 하나를 사용하여 문자가 영문자인지 숫자인지 확인하거나 std 라이브러리 함수 인 IsDigit IsSymbol IsLetter를 사용하여 기호를 확인하는 세 개의 다른 if 문을 포함합니다.

문자가 세 범주 중 하나 일 때마다 처음 선언 된 적절한 변수에 하나를 더합니다.

목적에 따라 비슷한 기술을 사용할 수 있지만 int Pw_Str 및 Total_Char를 선언하고 필요한 경우 Total_Char을 높이기 위해 if 문을 추가하십시오. Total_Char이 8을 초과하면 필요에 따라 Pw_Str에 10을 더하고 Pw_Str 변수를 사용하여 색상을 변경할 수 있습니다.

if 문을 계속 사용하는 대신 이러한 코드를 더 작게 만들려면 FOR 루프를 사용하여 각 문자를 감아 필요한 변수에 추가하는 것이 좋습니다.

+0

답장을 보내 주셔서 감사합니다. 지금 찾으십시오. – user2058186