Password Cracking Algorithm

The top ten password-cracking techniques used by hackers. A table becomes useless if the hash it's trying to find has been 'salted' by the addition of random characters to its password ahead. Password Cracking Passwords are typically cracked using one or more of the following methods: Guessing: Even with all of the advanced programs, algorithms, and techniques computer scientists have come up with, sometimes the most effective way of cracking a user password is by using logic and/or trying commonly used passwords.

  1. Brute Forcing Passwords Algorithm
  2. Password Cracking Software
  3. Password Cracking Algorithm Python
  4. Password Attack Methods
Active1 month ago
$begingroup$

I created a fun password cracker using literal brute force, searching each character to see if it matches an ASCII character 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ. The password is randomly generated and will vary from 100,000 to 250,000 characters long. I use a wrapper timeit function to time the function and the output is a basic print statement using .format():

An example output (without the password):

So my questions are:

Password hack algorithm
  • Am I following coding standards for Python 2 (like PEP8)

  • Is there anyway to improve performance, readability, etc.

  • Is there any way to make my code more 'Pythonic' (like a native Python coder)?

200_success
136k21 gold badges175 silver badges447 bronze badges
Anthony PhamAnthony Pham

Brute Forcing Passwords Algorithm

4951 gold badge7 silver badges21 bronze badges
$endgroup$

2 Answers

$begingroup$

I'll answer your first question separately. However, since your second and third questions are closely related, I'll give the same answers to both questions.

Am I following coding standards for Python 2 (like PEP8)

For the most part, your code complies with PEP8,

  • Spaces between operators
  • Two newlines between function definitions
  • Variables are lowercase with underscores as needed
  • etc...

The only thing I'd suggest is to break some of your longer statements up - such as your print statement at the end of your script - onto separate lines, with each separate line being indented.

However, even if sometimes you choose not to comply with a certain coding standard, make sure you are consistent with your naming conventions. I've seen Python code which is written Java style, but is still easy to read because the author was consistent in their style.

Is there any way to make my code more 'Pythonic' (like a native Python coder)? and Is there anyway to improve performance, readability, etc.

  • Instead of having the list_of_chars variable, make use of the string module which already defines all alphanumeric characters:

  • Don't use global variables. There is rarely ever a good reason to use them. Instead of making attempted_password global, define it local to the solve_password() function. This makes much clearer where attempted_password is used.

  • Inside of your first for-loop, you never use the variable letter. Instead, simply use the variable _ which conveys to the reader that your only using this loop for code repetition:

  • The builtin range() function will already start from zero if no other start value is specified. So there is no need to explicitly do it yourself:

Christian DeanChristian Dean
$endgroup$$begingroup$

Whenever you are doing string addition in Python, you are probably doing it wrong. It is very slow, due to strings being immutable. Because of this Python will have to create a new string everytime you do string addition and copy over the content of the two strings you are adding.

Password Cracking Software

Password cracking software

As a fix, just use list and str.join. Also, creating a password from a possible list of characters is something you might want to do again, so I would put it into a function.

This can be even further simplified using random.sample:

Password Cracking Algorithm Python

GraipherGraipher
30.7k6 gold badges48 silver badges106 bronze badges
$endgroup$

Password Attack Methods

Not the answer you're looking for? Browse other questions tagged pythonstringsrandom or ask your own question.