1 unstable release

0.0.1 Feb 5, 2023

#9 in #pwd

37 downloads per month

MIT/Apache

21KB
145 lines

PSPH

A Rust library for accessing a collection of mathematical and cryptographic constants

Made With Love Crates.io Lib.rs Docs.rs License

divider

Welcome to PSPH 👋

PSPH Banner

Website â€ĸ Documentation â€ĸ Report Bug â€ĸ Request Feature â€ĸ Contributing Guidelines

Overview 📖

PassPhrase (PSPH) is a Rust library that empowers developers to elevate the security of their applications with ease. PSPH generates secure and strong passphrases using a unique combination of letters, numbers, cases, and symbols to form an unpredictable string of characters that doesn't resemble words or names with a high level of entropy.

Features ✨

PSPH uses the cmn crate for constants; the hsh crate for password hashing, and the vrd crate for random number generation.

The Password struct is the cornerstone of PSPH, storing the generated passphrase, as well as the optional special characters and separators to use. This struct also provides a range of functions for evaluating the security of the password, such as entropy calculation, hash generation, password validation, and much more.

  • Passphrase Generation: Generates random, secure passphrases consisting of multiple words separated by a specified separator.
  • Entropy Calculation: Calculates the entropy of a password based on its length, the number of unique characters used, and the number of bits of the hash generated from the password. The entropy value provides insight into the security of the password, with higher entropy values indicating stronger security.
  • Hash Generation: Returns the hash of the generated password,
  • enabling secure storage of the passphrase.
  • Hash Length Calculation: Evaluates the length of the hash generated from the password.
  • Passphrase Validation: Checks if the generated passphrase is empty, making sure that a secure password is always generated.
  • Passphrase Length Calculation: Evaluates the length of the generated passphrase, giving developers full control over password length.

Installation đŸ“Ļ

It takes just a few minutes to get up and running with psph.

Requirements

psph requires Rust 1.67.0 or later.

Documentation

ℹī¸ Info: Please check out our website for more information and find our documentation on docs.rs, lib.rs and crates.io.

Usage 📖

To use psph in your project, add the following to your Cargo.toml file:

[dependencies]
psph = "0.0.1"

Add the following to your main.rs file:

extern crate psph;
use psph::*;

then you can use the functions in your application code.

Examples

PSPH comes with a set of examples that you can use to get started. The examples are located in the examples directory of the project. To run the examples, clone the repository and run the following command in your terminal from the project root directory.

cargo run --example psph

Semantic Versioning Policy đŸšĨ

For transparency into our release cycle and in striving to maintain backward compatibility, PSPH follows semantic versioning.

License 📝

The project is licensed under the terms of both the MIT license and the Apache License (Version 2.0).

Contribution 🤝

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

divider

Acknowledgements 💙

A big thank you to all the awesome contributors of Mini Functions for their help and support.

Dependencies

~5.5–8MB
~152K SLoC