Question: For no particular reason, other than I am interesting in cryptography and computing, I would like to make my own brute force program in Java or Visual Basic or C# to see if it can crack a password. I am not interested in performance and I am aware that it is a totally impractical method - it's just a bit of a fun project to be honest. However, I've only got a rough idea in my head and I can't even put it into psuedocode. I'm most proficient in Java but even if somebody could provide me with the psuedocode that'd be great!

I don't want to provide the program with a length, but I'll provide a maximum length. I know that the program will have to do a lot of work, but I do also think I am overthinking it a little.

Answer: 
Ok, so I just found an example what I wanted to do in C++ and I've managed to convert it to the following Visual Basic .NET code, which works perfectly. However the output seems a bit slow and I'd have thought the program would have used near 100% processing power, but it isn't. Could somebody tell me why this is and how I could change it please?

```
Public Class Form1
    Dim chars() As Char = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYX".ToCharArray
    Dim csize As Integer = chars.Length - 1
    Dim upto As String
    Private Sub btnGo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGo.Click
        upto = "                                                  "

        Dim max_length As Integer = 50

        For i = 1 To max_length
            bf_recursion(0, i)
            Update()
        Next

    End Sub

    Private Sub bf_recursion(ByVal index As Integer, ByVal depth As Integer)
        Dim current() As Char = upto.ToCharArray()

        For i = 0 To csize
            current(index) = chars(i)
            upto = CStr(current)

            Console.WriteLine(CStr(current))
            '\\lblOutput.Text = CStr(current)

            If index <> (depth - 1) Then
                bf_recursion(index + 1, depth)
            End If
        Next
    End Sub
End Class

```
The first thing you will want to do is figure out what you want to brute force. I would pick a one way hashing scheme, such as MD5 or SHA-1, that can be brute forced at high rates. After choosing which one way hashing scheme you want to "break", you will have to find some sort of password list, like <http://www.whatsmypass.com/the-top-500-worst-passwords-of-all-time>. After you have the list you need to hash the values and store them somewhere. After you have this stored "real" data set, you create your brute force loop and compare. When you find a match, output that match. You have now "cracked" a fake person password via brute force. Good luck!