![Enpass](https://raw.githubusercontent.com/Aresshu/enpass/main/data/logo.png "Enpass")
### Enpass is a simple password entropy strength validator
This project can be used to validate a password strength. Designed to be lightweight with the following benefits:
* No external API calls
* No large data sets
* Focused entirely on raw entropy values
* More flexible (doesn't require uppercase, numbers, special characters)
## Installation
```bash
pip install enpass
```
## Quick Start
`calc_entropy` calculates the entropy of a password in bits.
Entropy equation = log2(B^L)
`B = Base; L = Length`
```python
import enpass as ep
password = 'P@SSW0RD!'
#Calculates the entropy of a password in bits.
entropy = ep.calc_entopy(password)
```
`validate` checks if the password's entropy meets the specified minimum requirement.
Passwords should ideally be > 60.
Great Passwords should be between 70-90.
```python
min_entropy = 60.0
# Checks if the password's entropy meets the specified minimum requirement.
validate = ep.validate(entropy, min_entropy)
```
`estimate_bruteforce_time` assumes that cracking time scales linearly with the number of possible combinations.
While this might hold for straightforward brute-force attacks, more sophisticated attacks,
such as dictionary attacks or those exploiting weaknesses in password hashing algorithms, may have different time complexities.
```python
guesses_per_second = 100_000_000
# Estimates the amount of time required to brute-force a password
time_brute_estimate = ep.estimate_bruteforce_time(entropy, guesses_per_second)
```
## Roadmap
- [x] Entropy Calculator
- [x] Brute-Force Estimate
- [ ] Scoring
- [ ] Feedback
- [ ] Throttling/Hashing Brute-Force Estimate
- [ ] Character Sequences
## Contributing
Contributions are welcome!
Raw data
{
"_id": null,
"home_page": "https://github.com/Aresshu/enpass",
"name": "enpass",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "entropy password validator strength",
"author": "Andres Ordonez",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/bf/73/862489d482fd32f245d4adfc50208b874dc8c3286ad02a56b8d4b3b548b8/enpass-0.1.2.tar.gz",
"platform": null,
"description": "![Enpass](https://raw.githubusercontent.com/Aresshu/enpass/main/data/logo.png \"Enpass\")\n\n### Enpass is a simple password entropy strength validator\nThis project can be used to validate a password strength. Designed to be lightweight with the following benefits:\n* No external API calls\n* No large data sets\n* Focused entirely on raw entropy values\n* More flexible (doesn't require uppercase, numbers, special characters)\n\n\n## Installation\n```bash\npip install enpass\n```\n## Quick Start\n`calc_entropy` calculates the entropy of a password in bits.\n \nEntropy equation = log2(B^L) \n`B = Base; L = Length`\n```python\n import enpass as ep\n\n password = 'P@SSW0RD!'\n\n #Calculates the entropy of a password in bits.\n entropy = ep.calc_entopy(password)\n```\n`validate` checks if the password's entropy meets the specified minimum requirement.\n\nPasswords should ideally be > 60.\nGreat Passwords should be between 70-90.\n```python\n min_entropy = 60.0\n # Checks if the password's entropy meets the specified minimum requirement.\n validate = ep.validate(entropy, min_entropy)\n```\n`estimate_bruteforce_time` assumes that cracking time scales linearly with the number of possible combinations.\n\nWhile this might hold for straightforward brute-force attacks, more sophisticated attacks,\nsuch as dictionary attacks or those exploiting weaknesses in password hashing algorithms, may have different time complexities.\n```python\n guesses_per_second = 100_000_000\n # Estimates the amount of time required to brute-force a password \n time_brute_estimate = ep.estimate_bruteforce_time(entropy, guesses_per_second)\n```\n## Roadmap\n- [x] Entropy Calculator\n- [x] Brute-Force Estimate\n- [ ] Scoring\n- [ ] Feedback\n- [ ] Throttling/Hashing Brute-Force Estimate\n- [ ] Character Sequences\n\n## Contributing\nContributions are welcome!\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Simple entropy password validator.",
"version": "0.1.2",
"project_urls": {
"Homepage": "https://github.com/Aresshu/enpass"
},
"split_keywords": [
"entropy",
"password",
"validator",
"strength"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a5516626e33344d6fd24e5dbd82ddf70460e415ebad2453176564008c825e3a7",
"md5": "043e4171e0b61134f9de46bb58e39777",
"sha256": "5da0afba971dce80f76ebe8b0fb460259d7f844243296e2a1f3d18889e0526cb"
},
"downloads": -1,
"filename": "enpass-0.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "043e4171e0b61134f9de46bb58e39777",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 4609,
"upload_time": "2024-05-07T22:31:11",
"upload_time_iso_8601": "2024-05-07T22:31:11.595914Z",
"url": "https://files.pythonhosted.org/packages/a5/51/6626e33344d6fd24e5dbd82ddf70460e415ebad2453176564008c825e3a7/enpass-0.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bf73862489d482fd32f245d4adfc50208b874dc8c3286ad02a56b8d4b3b548b8",
"md5": "fc72044a952a8f28f5972cf578ccf520",
"sha256": "9424ff845c7590ae4a3c68f719d6ede77983a4d96b4993e1c5b8159d190ae812"
},
"downloads": -1,
"filename": "enpass-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "fc72044a952a8f28f5972cf578ccf520",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 3905,
"upload_time": "2024-05-07T22:31:13",
"upload_time_iso_8601": "2024-05-07T22:31:13.061865Z",
"url": "https://files.pythonhosted.org/packages/bf/73/862489d482fd32f245d4adfc50208b874dc8c3286ad02a56b8d4b3b548b8/enpass-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-07 22:31:13",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Aresshu",
"github_project": "enpass",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "enpass"
}