Wpisywanie hasła - siła hasła i generowanie nowego

0

Witam ponownie!

Musze zrobić okno dialogowe do wczytywania haseł (z opcją generowania hasła):

Mam dwa problemy:

Szukam pomysłu na oszacowanie tzw. mocy hasła. Może jakiś szybki algorytm lub pomysł ??

2:

randomize();

for(int i=0;i<10;i++)
haslo[i]=65+random(120);

MaskEdit1->Text= haslo;

Tu jest coś nie tak (niezgodność typów, ale nie bardzo mogę zastosować UnicodeString dla zmiennej haslo).

Dziękuje za pomoc!


Na temat siły hasła znalazłem:

The Password strength procedure is working as the follow:
We have many cases to care about to know a password strength , so we will present a global variable score , and each case will add some points to score.
At the end of the algorithm we will decide the password strength according to the score value.
The cases we have are :

* If the password matches the username then BadPassword
* If the password is less than 4 characters then TooShortPassword
* Score += password length * 4
* Score -= repeated characters in the password ( 1 char repetition )
* Score -= repeated characters in the password ( 2 char repetition )
* Score -= repeated characters in the password ( 3 char repetition )
* Score -= repeated characters in the password ( 4 char repetition )
* If the password has 3 numbers then score += 5
* If the password has 2 special characters then score += 5
* If the password has upper and lower character then score += 10
* If the password has numbers and characters then score += 15
* If the password has numbers and special characters then score += 15
* If the password has special characters and characters then score += 15
* If the password is only characters then score -= 10
* If the password is only numbers then score -= 10

* If score > 100 then score = 100

Now according to score we are going to decide the password strength

* If 0 < score < 34 then BadPassword
* If 34 < score < 68 then GoodPassword
* If 68 < score < 100 then StrongPassword

Może się komuś przyda.

0

Mam znowu problem z konwersją typów...

Używam:

  String dlugosc;
  itoa(strlen(MaskEdit1->Text), dlugosc, 10);
  Label5->Caption=   dlugosc;

Pytanie jak zapisać długość stringa (długość tekstu w MaskEdit) do Label-a ??

Dzieki za ew. pomoc !

0

Z jednym problemem poradziłęm sobie tak:

 int dlugosc;

 dlugosc=(MaskEdit1->Text).Length();

 Label5->Caption=IntToStr(dlugosc);

Ale nie wiem czy to elegancki, zgodny z wzorcami sposób ?

0
  1. moc hasla - dla danego hasla, sprawdz jakie zawiera ono znaki (litery duze, litery male, litery narodowe, cyfry, przestankowe, ...) kazda z tych grup to iles znakow. chcac 'zlamac haslo' na chama bruteforcem, kazdy znak z kazdej grupy na kazdej pozycji trzeba zgadnac/przetestowac. jezeli haslo to tylko male litery, i ma lacznie 3 znaki -- ilosc kombinacji do sprawdzenia to 262626 = malo, pare sekund na starym padnietym kompie. jesli haslo ma 20 znakow, zawiera litery duze, male, cyfry i znaki specjalne to ilosc kombinacji do trafienia-w wynosi np. 8888888888*...(x20) wiec duzo. kilkaset dni na dobrym kilkurdzeniowcu. itd itp. przelicz w ten sposob liczbe kombinacji, podziel przez typowa ilosc core/procesorow u Twojego sasiada pomnozona przez 50 lub 100, podziel przez wyssana z palca liczbe operacji na sekunde pojedynczego core'a i przelicz to na godziny lub dni --- bedziesz mial jakas tam realna sile hasla, acz nie uwzgledniajaca atakow slownikowych, slownikowo-mutacyjnych, (.....) --- czego zreszta w/w checklista tez nie uwzglednia:)

2 i w dol) uh.. wybacz, nie rozumiem o co pytasz. Mogłbyś to jakos skladniej wyrazic?

0
  1. dzięki za sugestie. Pomyśle o tym.

Na metodę brute force jest sposób (po 5-10 nieudanych próbach) można wyłączyć opcję logowania czy dostępu hasłem (wyjść z programu, albo zatrzymać program na kilka minut).

  1. Miałem na myśli czy to jest najlepszy i elegancki sposób. W Delphi jest funkcja Length (S), w C++ zdaje się strlen (s) - więc pytam, czy zastosowany przeze mnie sposób z ToString() jest dobry? (działać działa, ale jeszcze nie znam za dobrze biblioteki języka).
0

nie widze u Ciebie w kodach powyzej ToString(), nie napisales rowniez w jakim srodowisku i z jakimi bibliotekami piszesz, ciezko wiec odpowiedziec na 2) :) ostatni post z kodm Length()/IntToStr wyglada normalnie, wyglada Borlandowo, nie uzywam Borlanda, ale nie widze nic w nim nienormalnego

1 użytkowników online, w tym zalogowanych: 0, gości: 1