PasswordCracker.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace friaLabbar.Models
  7. {
  8. public class PasswordCracker
  9. {
  10. public List<String> PasswordPool { get; set; }
  11. public PositionalPasswordCharacter[] PositionalCharacters { get; set; }
  12. public PasswordCracker(List<string> passwordPool, uint pwLength = 5, uint numPossibleCharacters = 6)
  13. {
  14. PasswordPool = passwordPool;
  15. PositionalCharacters = new PositionalPasswordCharacter[pwLength];
  16. for (uint i = 0; i < pwLength; i++)
  17. {
  18. PositionalCharacters[i] = new PositionalPasswordCharacter(numPossibleCharacters, i);
  19. }
  20. }
  21. public PasswordCracker(uint pwLength = 5, uint numPossibleCharacters = 6)
  22. : this(new List<string>(), pwLength, numPossibleCharacters)
  23. {
  24. }
  25. public IEnumerable<PossiblePassword> AllPasswords
  26. {
  27. get
  28. {
  29. List<PossiblePassword> result = new List<PossiblePassword>();
  30. foreach (string password in PasswordPool)
  31. {
  32. result.Add(new PossiblePassword(password, PositionalCharacters));
  33. }
  34. return result;
  35. }
  36. }
  37. }
  38. }