Skip to content

the-open-lab/password-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A truly random password generator

Most, if not all, password generators are built on their core language's random number generation algorithms, which necessarily are always limited to pseudorandomness as opposed to producing truly random results. A popular web service that provides actual random numbers is RANDOM.org, and they do, indeed, have a secure password generation service. However, password requirements often are more strict than what that service provides. For example, the passwords generated by it never have non-alphanumeric characters, sometimes referred to as "special characters", and this is quite often a requirement. Hence, this project was born.

Modus Operandi

This project makes use of the RANDOM.org API in order to obtain truly random bytes from which to create the resulting password, and then filters this result in a "sieve" to produce an output of only those characters in the alphanumeric and special characters sets – collectively referred to here as "password characters". These characters are those which are able to be typed from an English-language keyboard. From this set of candidate characters, the resulting password is created from the substring beginning with the first character until the nth character, where n is the required password length.

Building

This project was created using Qt Creator. It should compile without any issues on any platform that has a build of Qt available for it. If you run into issues and find a workaround, fork the project and then open a pull request to add it to the code base.

Dependencies:

Licenses

This is free software, built on the shoulders of previous free software. The libraries required to build this project are linked as Git submodules in the lib directory:

You are both free and encouraged to copy, share, and remix this work, in accordance with the Free Art License.

Colophon

The directory structure of this project follows the canonical C++ structure described by Boris Kolpackov in Document P1204R0: "Canonical Project Structure" on 08 OCT 2018.