In this article, we will share some useful command-line tools that can be used to generate random passwords and also demonstrate how to encrypt and decrypt passwords with or without the salt method, which is a security enhancement used in password hashing.
Security has become a critical aspect of our digital lives. We use passwords for computers, emails, cloud services, mobile devices, documents, and much more. Everyone understands the importance of choosing a password that’s both easy to remember and difficult to guess.
What if we could let a machine generate secure passwords automatically using tools like pwgen or makepasswd, which are command-line utilities designed to create random passwords based on specified length, complexity, and character types?
PWgen – Generate a Random Password on Linux
To generate a random password with a length of 10 characters using the ‘pwgen‘ command, simply run:
<code>$ sudo apt install pwgen [On <strong>Debian, Ubuntu and Mint</strong>] $ sudo yum install pwgen [On <strong>RHEL/CentOS/Fedora</strong> and <strong>Rocky/AlmaLinux</strong>] $ sudo emerge -a sys-apps/pwgen [On <strong>Gentoo Linux</strong>] $ sudo apk add pwgen [On <strong>Alpine Linux</strong>] $ sudo pacman -S pwgen [On <strong>Arch Linux</strong>] $ sudo zypper install pwgen [On <strong>OpenSUSE</strong>] </code>
After installing ‘pwgen‘, you can generate a single password as follows:
<code>$ pwgen 10 1</code>
If you want to generate multiple unique passwords with a length of 50 characters at once, use this command:
<code>$ pwgen 50</code>
Makepasswd – Generate Unique Passwords on Linux
The makepasswd utility is another password generation tool that creates random passwords based on user-defined parameters such as length.
Before using makepasswd, ensure it is installed. If not, install it using your system's package manager:
<code>$ sudo apt install makepasswd [On <strong>Debian, Ubuntu and Mint</strong>] $ sudo yum install makepasswd [On <strong>RHEL/CentOS/Fedora</strong> and <strong>Rocky/AlmaLinux</strong>] $ sudo emerge -a sys-apps/makepasswd [On <strong>Gentoo Linux</strong>] $ sudo apk add makepasswd [On <strong>Alpine Linux</strong>] $ sudo pacman -S makepasswd [On <strong>Arch Linux</strong>] $ sudo zypper install makepasswd [On <strong>OpenSUSE</strong>] </code>
To generate a password with the default length of 10 characters:
<code>$ makepasswd </code>
For a password with 50 characters:
<code>$ makepasswd --char 50</code>
To create 7 random passwords each containing 20 characters:
<code>$ makepasswd --char 20 --count 7</code>
mkpasswd – Encrypt a Password in Linux
To securely encrypt a password using crypt (a Python built-in library) along with a salt method.
For those unfamiliar, salt refers to random data added to a password before hashing, making it more resistant to dictionary and rainbow table attacks.
The mkpasswd command comes from the whois package and is not included by default in many modern Linux distributions. Install it using your distribution’s package manager:
<code>$ sudo apt install whois [On <strong>Debian, Ubuntu and Mint</strong>] $ sudo yum install whois [On <strong>RHEL/CentOS/Fedora</strong> and <strong>Rocky/AlmaLinux</strong>] $ sudo emerge -a sys-apps/whois [On <strong>Gentoo Linux</strong>] $ sudo apk add whois [On <strong>Alpine Linux</strong>] $ sudo pacman -S whois [On <strong>Arch Linux</strong>] $ sudo zypper install whois [On <strong>OpenSUSE</strong>] </code>
Now execute the mkpasswd command to hash a password using salt. The salt value is generated randomly each time, resulting in different outputs even for the same input.
<code>$ mkpasswd tecmint</code>
This command generates a salted hash for the password “tecmint.” Each execution produces a unique result due to the random salt.
To generate an SHA-512 hash for the password “tecmint”, use:
<code>$ mkpasswd -m sha-512 tecmint</code>
The output will be the encrypted hash suitable for storage or authentication.
Additionally, mkpasswd supports interactive mode — if you omit the password from the command line, it will prompt you to enter one.
Encrypt a String with Password in Linux
To encrypt a string such as “Tecmint-is-a-Linux-Community” using aes-256-cbc encryption with a password “tecmint” and salt:
<code>$ echo Tecmint-is-a-Linux-Community | openssl enc -aes-256-cbc -a -salt -pass pass:tecmint -pbkdf2</code>
In the above example, the echo command sends the string into the openssl command via a pipe. It uses the enc utility with the aes-256-cbc cipher, applies salt, and derives the key using the PBKDF2 algorithm with the provided password.
Decrypt a String in Linux
To decrypt the previously encrypted string using the openssl command and the -aes-256-cbc decryption option:
<code># echo U2FsdGVkX18Zgoc dfAdpIK58JbcEYFdJBPMINU91DKPeVVrU2k9oXWsgpvpdO/Z | openssl enc -aes-256-cbc -a -d -salt -pass pass:tecmint</code>
That concludes this guide. If you have any other useful tips or tricks, feel free to share them in the comments section below. Your suggestions may be featured under your name and included in upcoming articles.
The above is the detailed content of How to Generate Random Passwords in Linux. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Are you looking for good software to write mathematical equations? If so, this article provides the top 5 equation editors that you can easily install on your favorite Linux distribution.In addition to being compatible with different types of mathema

Linux administrators should be familiar with the command-line environment. Since GUI (Graphical User Interface) mode in Linux servers is not commonly installed.SSH may be the most popular protocol to enable Linux administrators to manage the servers

Gogo is a remarkable tool to bookmark directories inside your Linux shell. It helps you create shortcuts for long and complex paths in Linux. This way, you no longer need to type or memorize lengthy paths on Linux.For example, if there's a directory

PPA is an important tool for Ubuntu users to expand their software sources. 1. When searching for PPA, you should visit Launchpad.net, confirm the official PPA in the project official website or document, and read the description and user comments to ensure its security and maintenance status; 2. Add PPA to use the terminal command sudoadd-apt-repositoryppa:/, and then run sudoaptupdate to update the package list; 3. Manage PPAs to view the added list through the grep command, use the --remove parameter to remove or manually delete the .list file to avoid problems caused by incompatibility or stopping updates; 4. Use PPA to weigh the necessity and prioritize the situations that the official does not provide or require a new version of the software.

LXD is described as the next-generation container and virtual machine manager that offers an immersive for Linux systems running inside containers or as virtual machines. It provides images for an inordinate number of Linux distributions with support

How to quickly generate test files of a specified size? It can be achieved using command line tools or graphical software. On Windows, you can use fsutilfilecreatenew file name size to generate a file with a specified byte; macOS/Linux can use ddif=/dev/zeroof=filebs=1Mcount=100 to generate real data files, or use truncate-s100M files to quickly create sparse files. If you are not familiar with the command line, you can choose FSUtilGUI, DummyFileGenerator and other tool software. Notes include: pay attention to file system limitations (such as FAT32 file size upper limit), avoid overwriting existing files, and some programs may

Node Version Manager (NVM) is a simple bash script that helps manage multiple Node.js versions on your Linux system. It enables you to install various Node.js versions, view available versions for installation, and check already installed versions.NV

The key to installing dual systems in Linux and Windows is partitioning and boot settings. 1. Preparation includes backing up data and compressing existing partitions to make space; 2. Use Ventoy or Rufus to make Linux boot USB disk, recommend Ubuntu; 3. Select "Coexist with other systems" or manually partition during installation (/at least 20GB, /home remaining space, swap optional); 4. Check the installation of third-party drivers to avoid hardware problems; 5. If you do not enter the Grub boot menu after installation, you can use boot-repair to repair the boot or adjust the BIOS startup sequence. As long as the steps are clear and the operation is done properly, the whole process is not complicated.
