Avatar billede Drila Nybegynder
15. november 2010 - 22:25 Der er 8 kommentarer

BruteForce

Hej.

Jeg vil gerne lave et program som kan udregne hvor lang tid det vil tage at knække et indtasted password med bruteforce metoden, så brugeren får et indtryk af hvor stærkt dennes password er.

Men jeg ved ikke hvad jeg skal bruge af kode, så kunne nogen hjælpe mig med det?
Avatar billede arne_v Ekspert
15. november 2010 - 23:04 #1
Hvad er konteksten. Har man det hashede password og skal finde password? Eller skal man forsoege at logge ind med password?
Avatar billede Drila Nybegynder
15. november 2010 - 23:24 #2
Hej.

Det skal fungere på den måde at hvis mit password til eksperten.dk var: sDk1FFa0

Så skulle man kunne indtaste det i en teksboks i programmet, hvorefter det vil fortælle hvor lang tid det vil tage.

Jeg har set steder på nettet hvor man kan gøre det, men jeg kunne godt tænke mig at lave et program som kan gøre det.

Et eksempel på hvordan programmet skal virke kan ses her: http://www.unwrongest.com/projects/password-strength/
Avatar billede arne_v Ekspert
15. november 2010 - 23:30 #3
Jo, men du svarer stadigvæk ikke på om det skal testes ved at forsøge at logge ind på eksperten.dk eller om vi antager at the bad guys har fået fat i en kopi af eksperten.dk's database med hashede passwords.

Det sidste link antager det sidste.
Avatar billede Drila Nybegynder
15. november 2010 - 23:36 #4
Der skal ikke forsøges at logge ind nogen steder, jeg er ikke ved at lave et hacker program.

Man skal ganske simpelt kunne indtaste sit password som på linket jeg har sendt, og så skal det komme med de samme informationer som på linket.
Avatar billede arne_v Ekspert
15. november 2010 - 23:47 #5
Det som linket gør er at:
- udfra det indtastede password gætte på antal mulige tegn i hver position
- beregne antal mulige passwords som antaltegn^længde
- lave en antagelse om antal passwords der kan testes i sekundet
- beregne tid som antalmuligepasswords/antltestpersekund
Avatar billede Drila Nybegynder
16. november 2010 - 03:24 #6
Hmm.. Hvordan ville en programkode til det så se ud?
Avatar billede arne_v Ekspert
16. november 2010 - 03:41 #7
Til inspiration:

Imports System

Namespace E
    Public Class Program
        Private Const VALID_CHARS As String = "ABCDEFGIJKLMNOPQRSTUWVXYZabcdefgijklmnopqrstuwvxyz01234567890"
        Private Const PWD_CHECKS_PER_SEC As Integer = 1000000
        Private Const NUM_COMPUTERS As Integer = 1000
        Public Shared Function CalcTime(pwd As String) As Long
            Return CLng(Math.Truncate(Math.Pow(VALID_CHARS.Length, pwd.Length) / PWD_CHECKS_PER_SEC / NUM_COMPUTERS / 2))
        End Function
        Public Shared Function FormatSecs(secs As Long) As String
            If secs < 60 Then
                Return secs & " seconds"
            End If
            Dim mins As Long = secs \ 60
            If mins < 60 Then
                Return mins & " minutes"
            End If
            Dim hours As Long = mins \ 60
            If hours < 24 Then
                Return hours & " hours"
            End If
            Dim days As Long = hours \ 24
            If days < 30 Then
                Return days & " days"
            End If
            Dim months As Long = days \ 30
            If months < 12 Then
                Return months & " months"
            End If
            Dim years As Long = months \ 12
            Return years & " years"
        End Function
        Public Shared Sub Main(args As String())
            Dim s As String = ""
            For i As Integer = 0 To 11
                s += "x"
                Console.WriteLine(s & " : " & FormatSecs(CalcTime(s)))
            Next
            Console.ReadKey()
        End Sub
    End Class
End Namespace
Avatar billede arne_v Ekspert
27. december 2010 - 00:35 #8
OK?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester