#password #security #rust

bin+lib xpwd

A simple and quick password generator for enhanced security

5 stable releases

1.0.4 Jun 3, 2024
1.0.3 Jun 2, 2024
1.0.2 Jun 1, 2024

#224 in Development tools

Download history 426/week @ 2024-06-01 13/week @ 2024-06-08

439 downloads per month

MIT license

25KB
247 lines

Crates.io License rustc 1.77.0 Documentation GitHub stars GitHub forks GitHub issues Contributors

A command-line password generator built with Rust, offering a swift and effortless solution for creating passwords of varying strengths. Cure your password creation woes with a single command!

Installation

Install using Cargo

Please ensure that your operating system has Rust and the Cargo development environment properly configured.

cargo install xpwd //Install the latest version by default

Install using Scoop

If you haven't installed Scoop, please refer to the official website for installation (https://scoop.sh/#/). Then, execute the following command to install xpwd

scoop install xpwd

More installation methods are coming soon...


CLI Usage

The usage examples below are always in line with the latest version. If you are using an older version, please visit https://crates.io/crates/xpwd to view the corresponding version's usage examples. Thank you.

$ xpwd -h
               _______           ______
|\     /|     (  ____ )|\     /|(  __  \
( \   / )     | (    )|| )   ( || (  \  )
 \ (_) /_____ | (____)|| | _ | || |   ) |
  ) _ ((_____)|  _____)| |( )| || |   | |
 / ( ) \      | (      | || || || |   ) |
( /   \ )     | )      | () () || (__/  )
|/     \|     |/       (_______)(______/

Fast, secure, and universal password generator.

Usage: xpwd.exe <COMMAND>

Commands:
  pwd   Generate a secure password of specified length and strength.
  str   Check the strength of the password you entered.
  pas   Generate a random short passphrase password based on a dictionary.
  help  Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version



$ xpwd pwd -l 8 -c s

+--------+--------+----------+
| Param1 | Param2 | Result   |
+--------+--------+----------+
| 8      | simple | u50nil6u |
+--------+--------+----------+
πŸ›‘οΈ β– β– β– β– β– β– β– β– β– β– β– β– β– β– β– β– β– β– β– β–  moderate
---------------------------------------------
$ xpwd str -p 123456

πŸ›‘οΈ β– β– β– β– β– β– β– β–  very weak
---------------------------------------------
$ xpwd pas -d C:\RustProjects\xpwd\resources\dictionary.txt -w 3
+--------+-----------------------------------------------+-----------------------+
| Param1 | Param2                                        | Result                |
+--------+-----------------------------------------------+-----------------------+
| 3      | C:\RustProjects\xpwd\resources\dictionary.txt | PotatoHarmonyKeyboard |
+--------+-----------------------------------------------+-----------------------+
-----------------------------------------------

For details on each specific feature, you can use the -h command to view help. For example, to see the help for the pwd command, use:

$ xpwd pwd -h
				_______          ______
|\     /|     (  ____ )|\     /|(  __  \
( \   / )     | (    )|| )   ( || (  \  )
 \ (_) /_____ | (____)|| | _ | || |   ) |
  ) _ ((_____)|  _____)| |( )| || |   | |
 / ( ) \      | (      | || || || |   ) |
( /   \ )     | )      | () () || (__/  )
|/     \|     |/       (_______)(______/

Generate a secure password of specified length and strength.

Usage: xpwd.exe pwd [OPTIONS]

Options:
  -l, --len <LEN>          Length of password [default: 8]
  -c, --complex <COMPLEX>  Complexity of the password [default: m]
  -h, --help               Print help

The generated password will be automatically copied to the clipboard by default, allowing you to directly paste and use it.


Futures

Here are the features and improvements we plan to add to the tool in the future. If you have any suggestions or ideas, feel free to share!

  1. Quick Password Generation
    • βœ… Rapidly generates random passwords of specified lengths and strengths.
  2. Password Strength Check
    • βœ… Assesses the strength of user-inputted passwords, providing visual feedback.
  3. Customizable Password Policy
    • βŒ› Enables users to customize password generation rules, such as mandating the inclusion of uppercase letters, lowercase letters, numbers, special characters, and their minimum occurrences.
  4. Password History Management
    • βŒ› Offers a secure means for users to store and manage their previously generated passwords (with emphasis on encrypted storage), including features to flag frequently used passwords and search for specific ones.
  5. Password Expiration Reminder
    • βŒ› Implements a notification system that alerts users, based on their settings (e.g., every 90 days), when to change passwords for specific websites or applications.
  6. Password Synchronization & Backup
    • βŒ› Provides cloud synchronization functionality, allowing users to sync their password database across multiple devices, ensuring secure access while facilitating cross-platform use.
  7. Security Assessment Report
    • βŒ› Generates detailed reports on password security, analyzing the distribution of password strengths and reuse within the user's database, offering improvement suggestions.
  8. Password Leak Check
    • βŒ› Integrates with an API (like Have I Been Pwned) to check if user-supplied passwords have been exposed in known data breaches, enhancing user awareness of password security.
  9. Random Passphrase Generation
    • βœ… In addition to traditional random strings, includes a dictionary-based passphrase generator that produces longer but more memorable passwords, such as β€œCorrectHorseBatteryStaple”.
  10. Multilingual Password Support
    • βŒ› Expands character set support to allow for passwords containing non-English characters, catering to international users with specific needs.
  11. Graphical User Interface
    • βŒ› Considers developing a graphical user interface (GUI) to enhance the user experience, particularly for those unfamiliar with command-line operations.
  12. Plug-in Based Development
    • βŒ› Develops related plugins to enrich usage scenarios, including browser plugins, IDE integrations, and apps for multiple platforms.
  13. Educational Module
    • βŒ›Incorporates educational content on password security, covering common password cracking methods and guidelines for creating and managing strong passwords, to boost user awareness.

License

This project is licensed under the MIT License - see the LICENSE file for details.


about

In order to provide a more efficient and convenient user experience, the original project quick_pswd (https://crates.io/crates/quick_pswd) has officially been renamed to xpwd.

Dependencies

~11–45MB
~652K SLoC