{"id":23480057,"url":"https://github.com/andreimerlescu/entpassgen","last_synced_at":"2026-02-03T07:24:13.147Z","repository":{"id":257196120,"uuid":"835800762","full_name":"andreimerlescu/entpassgen","owner":"andreimerlescu","description":null,"archived":false,"fork":false,"pushed_at":"2024-09-20T04:08:30.000Z","size":1814,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-17T21:48:09.147Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andreimerlescu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-30T14:55:15.000Z","updated_at":"2025-05-16T16:43:24.000Z","dependencies_parsed_at":"2025-01-05T13:47:15.878Z","dependency_job_id":null,"html_url":"https://github.com/andreimerlescu/entpassgen","commit_stats":null,"previous_names":["andreimerlescu/entpassgen"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andreimerlescu/entpassgen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreimerlescu%2Fentpassgen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreimerlescu%2Fentpassgen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreimerlescu%2Fentpassgen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreimerlescu%2Fentpassgen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andreimerlescu","download_url":"https://codeload.github.com/andreimerlescu/entpassgen/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreimerlescu%2Fentpassgen/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272310303,"owners_count":24911651,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-27T02:00:09.397Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-24T20:00:47.401Z","updated_at":"2026-02-03T07:24:13.117Z","avatar_url":"https://github.com/andreimerlescu.png","language":"Go","funding_links":[],"categories":["Recently Updated","Security","安全"],"sub_categories":["[Dec 24, 2024](/content/2024/12/24/README.md)","HTTP Clients","HTTP客户端"],"readme":"# Entropy (focused) Password Generator\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/andreimerlescu/entpassgen)](https://goreportcard.com/report/github.com/andreimerlescu/entpassgen)\n![GitHub Release](https://img.shields.io/github/v/release/andreimerlescu/entpassgen)\n![GitHub License](https://img.shields.io/github/license/andreimerlescu/entpassgen)\n![GitHub branch status](https://img.shields.io/github/checks-status/andreimerlescu/entpassgen/master)\n![GitHub top language](https://img.shields.io/github/languages/top/andreimerlescu/entpassgen)\n\n\n[Open/Source/Insights @entpassgen](https://deps.dev/go/github.com%2Fandreimerlescu%2Fentpassgen)\n[Go Package @entpassgen](https://pkg.go.dev/github.com/andreimerlescu/entpassgen)\n\n\nThis project demonstrates pure Go functionality as it does not use anything but the standard library. The purpose of `entpassgen` is to offer the ability to generate new passwords, but introduce the concept of entropy to the equation when generating new passwords. The package relies on `crypto/rand` to generate random numbers and uses `rune`, which makes it compatible with multiple languages, countries and use-cases. \n\n## Getting Started\n\nYou can either clone the repository, or install the package directory. This repository depends on: \n\n- **Go** `1.22.5`+\n\n```zsh\n# Clone the repository, build then install\ngit clone git@github.com/andreimerlescu/entpassgen.git\ncd entpassgen\nmake install # OR RUN THESE 4 ⬇︎⬇︎⬇︎⬇︎\ngo build -o entpassgen entpassgen.go\nsudo mv entpassgen /usr/bin/entpassgen\nchmod +x /usr/bin/entpassgen\nentpassgen -h\n\n# Install using Go\ngo install github.com/andreimerlescu/entpassgen@latest\nentpassgen -h\n\n# Download the binary and move\ncurl -o ./entpassgen -s https://github.com/andreimerlescu/entpassgen/releases/download/v1.0.0/entpassgen.linux-amd64\nchmod +x entpassgen\nsudo mv entpassgen /usr/bin/entpassgen\nentpassgen -h\n```\n\n### Special Instructions for Windows Users\n\n```powershell\n# Clone the repository, build then install\ngit clone git@github.com/andreimerlescu/entpassgen.git\ncd entpassgen\ngo build -o entpassgen.exe entpassgen.go\nentpassgen.exe -h\n\n# Install using Go\ngo install github.com/andreimerlescu/entpassgen@latest\nentpassgen.exe -h\n\n# Download the binary and move (run as Administrator)\nNew-Item -ItemType Directory -Force -Path C:\\bin\nsetx /M PATH \"%PATH%;C:\\bin\"\nInvoke-WebRequest \"https://github.com/andreimerlescu/entpassgen/releases/download/v1.0.0/entpassgen.windows-amd64.exe\" -OutFile c:\\bin\\entpassgen.exe\nentpassgen.exe -h\n```\n\n\n## Use Cases\n\nThis utility is designed to be used in many different kind of use cases. It's stable and intended to set it and forget it. The help menu is your friend.\n\n```zsh\n$ which entpassgen\n/usr/bin/entpassgen\n\n$ entpassgen -h\nUsage of entpassgen:\n  -E string\n        Define exclude symbols in new password\n  -L    Do not use lowercase characters in new password\n  -N    Do not use numbers in new password\n  -S    Do not use symbols in new password\n  -U    Do not use uppercase characters in new password\n  -W string\n        Separate words with these possible characters (default \"!@#$%^\u0026*()_+1234567890-=,.\u003e\u003c/?;:[]|\")\n  -a    Generate new passwords to get average entropy, min entropy and max entropy calculated for options\n  -e string\n        Minimum entropy value to accept in new password (default \"avg\")\n  -j    JSON formatted output\n  -k int\n        Quantity of passwords to generate when calculating average entropy (default 100000)\n  -l int\n        Character length in new password (default -1)\n  -q int\n        Quantity of passwords to generate (default = 1) (default 1)\n  -s string\n        Define acceptable symbols in new password (default \"!@#$%^\u0026*()_+=-[]\\\\{}|;':,./\u003c\u003e?\")\n  -t    TEXT formatted output (default) (default true)\n  -w    Use words (ignores -U -L -S -E -N -s)\n\n```\n\n### Generate 1 New Password (Defaults)\n\n```zsh\n$ entpassgen\nuLbirj64,oPDaO5^\u0026uLbirj64,oPDaO5^\u0026\n```\n\n### Generate 1 New Password (JSON Output)\n\n```zsh\n$ entpassgen -j | jq '.'\n{\n  \"length\": 17,\n  \"uppercase\": true,\n  \"lowercase\": true,\n  \"digits\": true,\n  \"symbols\": true,\n  \"value\": \"v\u003es81|/7:UmrzKXE{\",\n  \"sample\": {\n    \"limit\": 100000,\n    \"average\": 66.54055868500511,\n    \"recommended\": 68.01371349313044,\n    \"min\": 49.486868301255775,\n    \"max\": 69.48686830125578\n  },\n  \"entropy\": {\n    \"score\": 69.48686830125578\n  }\n}\n```\n\n### Generate Bogus Hebrew Words\n\n```zsh\n$ entpassgen -L -U -N -S -s \"אבגדהוזחטיכלמנסעפצקרשת\" -l 12 -q 5\nגקגתתעשנפכט\nשבגדעהתלנמ\nכדעפמכלכחת\nכגטששתחטצת\nטכלננמנסא\n\n```\n\n### Generate Random Number (9 digits long)\n\n```zsh\n$ entpassgen -L -U -S -l 9 \n804799183\n```\n\n### Generate Random String (A-Za-z0-9 only)\n\n```zsh\n$ entpassgen -S\nZxZ8zOoKym8qDdk07\n```\n\n### Generate 10 Random Passwords (Defaults)\n\n```zsh\n$ entpassgen -q 10\nr\u003cGcVng4W$iA@JQ#\\\nx3Q^MT4q2Xmp,ly\u003eG\nt!LH7uvnNT9aiQDD\u003e\nywEaYRpl\\CWv;Jh52\nEbfh1sHNao2HwM8\u003eu\n,XTG@vUx2V{y0:7TC\n;4W^w]E:t|ZqJ*WnU\nX(og^y^*3nhRfq=7j\nOcZSm[#\u003eI.WjU,o\u003e5\nw:ng1H+jNtrL!2ETr\n```\n### Generate Random Password (memorable words)\n\n```zsh\n$ entpassgen -w -l 3\nmisserve(kinematographic]daunii4\n```\n\n### Analyze Strong Passwords\n\n```zsh\n$ entpassgen -w -a\nEntropy Report: \n  Samples: 100000\n  Length: 5\n  Uppercase: true\n  Lowercase: true\n  Digits: true\n  Symbols: true\n  Use Words: true\n  Average: 221.935\n  Minimum: 141.402\n  Maximum: 328.852\n  Recommended: 275.393\n\n$ entpassgen -a   \nEntropy Report: \n  Samples: 100000\n  Length: 17\n  Uppercase: true\n  Lowercase: true\n  Digits: true\n  Symbols: true\n  Use Words: false\n  Average: 66.534\n  Minimum: 53.487\n  Maximum: 69.487\n  Recommended: 68.010\n```\n\n### Analyze Strong Passwords with 1 Billion Samples (JSON output)\n\n\u003e **NOTE**: This may take a long time to run!\n\n```zsh\n$ entpassgen -k 1000000000 -a -j\nCalculating ... 22.4s -\n```\n\nOnce completed, the line will clear and the results will show: \n\n```json\n{\n  \"length\": 17,\n  \"uppercase\": true,\n  \"lowercase\": true,\n  \"digits\": true,\n  \"symbols\": true,\n  \"sample\": {\n    \"limit\": 1000,\n    \"average\": 66.62700662609565,\n    \"recommended\": 68.05693746367572,\n    \"min\": 57.977093296928835,\n    \"max\": 69.48686830125578\n  },\n  \"entropy\": {}\n}\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreimerlescu%2Fentpassgen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreimerlescu%2Fentpassgen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreimerlescu%2Fentpassgen/lists"}