Пример #1
0
        // calculateHash() beräkna hars för det lösenordet som finns i
        // (passwordHashData.Password)
        public void calculateHash(PasswordHashData passwordHashData)
        {
            // Gör om password till en byte[] med hjälp av Encoding klassen
            byte[] bytes = Encoding.UTF8.GetBytes(passwordHashData.Password);

            // Det skapas tre olika funktionen i klassen och här anropas dessa och skickas "bytes"
            // till dessa fuktioner som inparametern och får tillbaka motsvarande "hash"
            passwordHashData.HashSha384 = getHashSha384(bytes);
            passwordHashData.HashSha256 = getHashSha256(bytes);
            passwordHashData.HashSha512 = getHashSha512(bytes);
        }
Пример #2
0
        // Funktionen som körs av varje thread(createHash()),
        // createHash() Det är en funktion som anropas av alla thread.
        private void createHash(int threadID,                            // Id för tråden
                                String firstPassword,                    // Första lösenordet som skall skapas
                                int noOfPasswords,                       // Antal lösenord som funktionen skall skapa
                                List <PasswordHashData> listOfPasswords) // Lista som skall fyllas med skapade lösenord
        {
            try
            {
                // skapa upp en new PasswordGenerator och ange att första lösenorden
                // som skall skapas är (firstPassword)
                PasswordGenerator threadPasswordGenerator =
                    new PasswordGenerator(firstPassword);
                // Skapa en new HashGenerator()
                HashGenerator hashGenerator = new HashGenerator();

                // loopa för varje lösenord som skall skapas och beräknas hash för.
                // spara resultatet i listOfPasswords.
                for (int i = 0; i < noOfPasswords; i++)
                {
                    // Skall skapa passwordHashData för varje lösenord
                    PasswordHashData passwordHashData =
                        new PasswordHashData();

                    // Hämta nuvarande lösenord från threadPasswordGenerator
                    // från class PasswordGenerator och sparar i passwordHashData
                    // i property Password i PasswordHashData class.
                    passwordHashData.Password =
                        threadPasswordGenerator.GetCurrentPassword();

                    // Anropar calculateHash() i klassen HashGenerator.
                    // calculateHash() kommer att beräkna hashar för lösenordet
                    // som finns sparat i passwordHashData.Password.
                    // calculateHash() kommer att spara hasharna i passwordHashData.HashSha256,
                    // passwordHashData.HashSha384, passwordHashData.HashSha512
                    hashGenerator.calculateHash(passwordHashData);

                    // Addar allt som passwordHashData fått i listOfPasswords
                    listOfPasswords.Add(passwordHashData);

                    // Säg till threadPasswordGenerator att skapa nästa lösenord
                    threadPasswordGenerator.NextPassword(); // continue++
                }
            }


            finally
            {
                // nät thread är färdigt så räknar ner antalet aktiva threads -1
                ActiveTreadCount--;
            }
        }