{"id":21817670,"url":"https://github.com/vschwaberow/npwg","last_synced_at":"2026-01-03T09:12:55.618Z","repository":{"id":232950867,"uuid":"785631908","full_name":"vschwaberow/npwg","owner":"vschwaberow","description":"A Secure Password Generator Written in Rust","archived":false,"fork":false,"pushed_at":"2025-10-02T09:19:11.000Z","size":441,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-02T11:25:59.395Z","etag":null,"topics":["cryptography","first-timers","password","password-generator","security","security-tools"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vschwaberow.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-12T09:34:48.000Z","updated_at":"2025-10-02T09:14:14.000Z","dependencies_parsed_at":"2025-02-26T03:22:04.896Z","dependency_job_id":"36a039e3-0150-46d1-9610-6308c9cdf050","html_url":"https://github.com/vschwaberow/npwg","commit_stats":null,"previous_names":["vschwaberow/npwg"],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/vschwaberow/npwg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vschwaberow%2Fnpwg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vschwaberow%2Fnpwg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vschwaberow%2Fnpwg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vschwaberow%2Fnpwg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vschwaberow","download_url":"https://codeload.github.com/vschwaberow/npwg/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vschwaberow%2Fnpwg/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278877691,"owners_count":26061496,"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-10-08T02:00:06.501Z","response_time":56,"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":["cryptography","first-timers","password","password-generator","security","security-tools"],"created_at":"2024-11-27T15:47:39.733Z","updated_at":"2026-01-03T09:12:55.608Z","avatar_url":"https://github.com/vschwaberow.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# npwg - Secure Password Generator\n\nnpwg is a secure password generator written in Rust. With npwg, you can easily generate strong and random passwords or passphrases to protect your online accounts.\n\n## Features\n\n- Generate passwords with custom length and count\n- Support various defined character sets\n- Generate diceware passwords\n- Generate pronounceable passwords\n- Customizable password length, count, character sets, and separators\n- Avoid repeating characters in passwords\n- Display statistics about the generated passwords\n- Show the estimated strength of the generated passwords\n- Interactive mode for easy password generation\n- Deterministic mode for password derivation from a master password and service\n\n## Installation\n\n### Using Cargo\n\nIf you have Rust and Cargo installed, you can install npwg using the following command:\n\n```sh\ncargo install npwg\n```\n\nThis will download and compile the latest version of npwg and install it in your Cargo binary directory.\n\n### Manual Installation\n\n1. Make sure you have Rust installed on your system. If not, you can download it from the official Rust website: [https://www.rust-lang.org/tools/install](https://www.rust-lang.org/tools/install)\n2. Clone this repository:\n   ```sh\n   git clone https://github.com/vschwaberow/npwg.git\n   ```\n3. Navigate to the project directory:\n   ```sh\n   cd npwg\n   ```\n4. Build the project:\n   ```sh\n   cargo build --release\n   ```\n5. The executable can be found at `target/release/npwg`.\n\n## Usage\n\n```sh\nnpwg [OPTIONS]\n```\n\n### Options\n\n- `-l, --length \u003cLENGTH\u003e`: Sets the length of the password [default: 16]\n- `-c, --count \u003cCOUNT\u003e`: Sets the number of passwords to generate [default: 1]\n- `--avoid-repeating`: Avoid repeating characters in the password\n- `--stats`: Show statistics about the generated passwords\n- `--strength`: Show strength meter for the generated passwords\n- `-a, --allowed \u003cCHARS\u003e`: Sets the allowed characters [default: allprint]\n- `--use-words`: Use words instead of characters\n- `-i, --interactive`: Start interactive console mode\n- `--separator \u003cSEPARATOR\u003e`: Sets the separator for diceware passphrases (single character or 'random')\n- `--pronounceable`: Generate pronounceable passwords\n- `--mutate`: Mutate the passwords\n- `--mutation-type \u003cTYPE\u003e`: Type of mutation to apply [default: replace]\n- `--mutation-strength \u003cSTRENGTH\u003e`: Strength of mutation [default: 1]\n- `--lengthen \u003cINCREASE\u003e`: Increase the length of passwords during mutation\n- `--copy`: Copy the generated password to the clipboard\n- `--qr`: Print the generated passwords as QR codes\n- `--deterministic`: Generate passwords deterministically from a master password and service\n- `-S, --service \u003cSERVICE\u003e`: Service or context name used as salt for deterministic generation\n- `-u, --username \u003cUSERNAME\u003e`: Optional username for deterministic generation\n- `--counter \u003cCOUNTER\u003e`: Counter for deterministic generation [default: 1]\n- `-h, --help`: Print help\n- `-V, --version`: Print version\n\n### Predefined Character Sets\n\n- `symbol1`, `symbol2`, `symbol3`: Different sets of symbols\n- `digit`: Numeric digits\n- `lowerletter`: Lowercase letters\n- `upperletter`: Uppercase letters\n- `shell`: Shell-safe characters\n- `homoglyph1` to `homoglyph8`: Various homoglyph sets\n- `slashes`, `brackets`, `punctuation`: Specific character types\n- `all`, `allprint`, `allprintnoquote`, etc.: Various combinations of character types\n\n### Example Recipes\n\n#### Quick Passwords\n\nGenerate default credentials:\n\n```sh\nnpwg\n```\n\nSpecify length, count, and character sets:\n\n```sh\nnpwg --length 20 --count 3 --allowed upperletter,lowerletter,digit\n```\n\nInspect entropy and statistics in one pass:\n\n```sh\nnpwg --strength --stats\n```\n\nCopy freshly generated secrets to the clipboard:\n\n```sh\nnpwg --copy\n```\n\nRender passwords as QR codes (one per password):\n\n```sh\nnpwg --qr --count 2\n```\n\n#### Diceware Passphrases\n\nFirst run downloads and verifies the EFF wordlist automatically. Generate six-word phrases separated by spaces:\n\n```sh\nnpwg --use-words --length 6\n```\n\nCustomise separators or request random punctuation between words:\n\n```sh\nnpwg --use-words --separator \"-\" --length 5\nnpwg --use-words --separator random --length 7\n```\n\n#### Pronounceable and Pattern Modes\n\nCreate pronounceable strings that alternate consonants and vowels:\n\n```sh\nnpwg --pronounceable --length 10\n```\n\nEnforce structural patterns (L=letter, D=digit, S=symbol):\n\n```sh\nnpwg --pattern LLDDS --length 16\n```\n\n#### Mutation Workflow\n\nTweak existing passwords by applying deterministic mutations and optional lengthening:\n\n```sh\nnpwg --mutate --mutation-type swap --mutation-strength 2 --lengthen 3\n```\n\n#### Deterministic Mode\n\nDerive a stable password from a master password and service context (no randomness):\n\n```sh\nnpwg --deterministic --service example.com --length 24\n```\n\nInclude an optional username and counter to create distinct variants:\n\n```sh\nnpwg --deterministic --service example.com --username alice --counter 2 --length 24\n```\n\nUse interactive mode for guided generation and mutation prompts:\n\n```sh\nnpwg --interactive\n```\n\n### Configuration Profiles\n\nCreate a `config.toml` in `~/.config/npwg/` (or `~/.npwg/` on systems without XDG directories) to store defaults and reusable profiles:\n\n```toml\n[defaults]\nlength = 20\nallowed = \"upperletter,lowerletter,digit\"\n\n[profiles.work]\ncount = 5\nuse_words = true\nseparator = \"-\"\n```\n\nInvoke a profile at runtime:\n\n```sh\nnpwg --profile work\n```\n\nProvide a custom config path when needed:\n\n```sh\nnpwg --config ./fixtures/npwg.toml --profile personal\n```\n\nUse built-in policies for common compliance regimes; these enforce minimum length and character-set expectations before applying your overrides:\n\n```sh\nnpwg --policy windows-ad\nnpwg --policy pci-dss --count 10\n```\n\n## Contributing\n\nContributions are welcome! If you find a bug or have a suggestion for improvement, please open an issue or submit a pull request.\n\nWhen contributing Rust code, include only the SPDX license header at the top of each `*.rs` file—avoid additional inline or block comments elsewhere.\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvschwaberow%2Fnpwg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvschwaberow%2Fnpwg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvschwaberow%2Fnpwg/lists"}