Why you Should Automate Password Generation with Python

StefanBStreet
Counter Arts
Published in
6 min readJul 24, 2021

--

Human’s created computers to do tedious and repetitive tasks through hardware and programming. One such task that can done by a computer is coming up with passwords for you. Have you ever created a password only to forget it two weeks later or have it guessed by your best friend? Or do you use the same password for every single site you use?

Software can be written to generate tough to guess passwords, and anyone can easily do this using the Python coding language even in they are new to coding. With just a few lines of code, these programs will create randomly generated passwords for users without ever having to write them down or remember them. As technology continues to evolve, we can expect it will have more uses in the future beyond the ones we currently see today such as not even needing passwords in the future from using biometrics.

Why You Need a Secure Password Generator

A password generator is a tool that helps you generate passwords securely. Therefore, it is essential to understand the importance of password security and why you should use a secure password generator.

First: having a simple, easy-to-remember password can put your accounts and data at risk

Second: You can use a complex algorithm that automatically generates passwords based on your existing password making it less likely a hacker could guess your password.

In today’s world, it is becoming harder to keep your privacy. Corporations are increasingly dominating the internet, and surveillance is becoming the norm. To stay protected, you have to take more precautions to ensure that your data isn’t vulnerable. One of the ways you can do this is by creating a secure password generator that will generate complex passwords for you without ever giving them out in plaintext. Some of the existing tools available for generating passwords are LastPass, 1Password, and KeePassX if you don’t want to create your own.

Why Should You Use Python to Generate Passwords?

Python is a programming language used for many different purposes, including generating passwords. These are two of the best reasons that you should use Python to create passwords:

- It’s easy to learn.

- It’s proven to be more secure than other languages.

With some coding knowledge, you can write Python scripts to generate strong, unique, and complex passwords quickly and store them in an encrypted file. In addition, using Python code allows you to create secure passwords against brute-force attacks, which are easy to remember.

But why use Python to generate passwords. What makes this one of the best options? One of Python’s most prominent features is its ability to read in a human-like syntax, making it useful when you are newer to coding and need to create passwords. In addition, Python is easier to learn, has a wide variety of third-party libraries, and is well suited for generating random text from your input using standard hashing libraries.

How to Create a Simple Python Program to Generate Random Passwords

At some point in time, most everyone will have to create passwords. You can make your password or take one from a list, but you will have to remember it today and a year from now to access your accounts. Preferably your passwords should be different for each site you visit in case of a security breach.

Programmers and developers often use Python to generate random numbers, passwords, and strings. To create your program, you will need to know the types of strings that Python can generate. If you are new to programming or want a refresher on Python — these are the basic types of data structures in Python you will use to develop your passwords:

  • Strings: A string is a sequence of characters enclosed in quotation marks like “This is a test.”
  • Unsigned Integers: An unsigned integer is any whole number greater than or equal to zero, like 1 or 2, using binary numbers. In Binary 0000 would be a 4-bit unsigned integer representing 0. 1111 would be a 4-bit unsigned integer representing 15. The max value that an 8-bit unsigned integer can represent is 255 and 65,536 using an unsigned 16-bit integer.

It would be best if you made your program combine characters and numbers into a unique string that you can use as your secure password when making accounts.

To make an even better password generator, you can take a base password and hash it with the site you are signing up to so that you can make a password that is reproducible that only you know. Let me know in the comments if it would be helpful for us to make a video or code sample for this!

And for an even more advanced program use the flask library to turn your software into a web application that everyone can use.

Avoid These Common Python Mistakes When Building an Automated Password Generator

Even if you have the best intentions, there could be hidden dangers in the design of your passwords. Developing an automated password generator is an excellent programming exercise for beginners. In addition, it provides a perfect opportunity for learning how to program and testing your programming skills.

To ensure that your password generator is secure, you need to do your best to prevent it from producing weak passwords. Unfortunately, there are a few common mistakes that Python developers make when building an automated password generator that results in weak password generation.

  1. Using dictionary words as passwords like dog, cat, love
  2. Using the same word too many times in the password string
  3. Not using proper string formatting to prevent easy guessability
  4. Not using random numbers for entropy
  5. Not checking and fixing user input before using it in a generation function
  6. Making the password generation function too long
  7. Assuming people know how to use their computer or software
  8. Not using a random seed for generating unique passwords. A seed is a string of characters that computer programs use to generate random numbers for things like encryption, password generation & more. The Seed Generator tool uses this method to create unique passwords for you without the need for a password manager, even if you’re using different devices and operating systems.
  9. Listing sensitive information in the code, like leaving actual passwords in the comments
  10. Not writing secure code. Programmers should ensure that their passwords are protected and only accessible by authorized users. Also, if you save passwords in a file on disk, they should be encrypted using a secure key.

Conclusion

This article covers the basics of how you can use Python to accomplish password generation. While the article doesn’t give you the exact code you should use, it gives you the foundational knowledge of why this kind of program is a fun exercise for you to dive into yourself. The article also gives you tips on things to avoid to be able to make a better program. Best of luck automating your password generation, and let us know in the comments what you end up making!

Originally published at http://beapython.dev on July 24, 2021.

--

--

StefanBStreet
Counter Arts

Stefan is a senior SDE at Amazon with 7+ years of experience in tech. He is passionate about sharing the thing he enjoys learning to others