{"id":15991956,"url":"https://github.com/antonlydike/passwordgen","last_synced_at":"2025-04-04T23:22:22.412Z","repository":{"id":133508482,"uuid":"117587584","full_name":"AntonLydike/PasswordGen","owner":"AntonLydike","description":"Dictionary based password generation for easy memorization","archived":false,"fork":false,"pushed_at":"2018-04-10T21:17:00.000Z","size":6960,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-10T07:43:46.471Z","etag":null,"topics":["password-generator"],"latest_commit_sha":null,"homepage":"","language":"C","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/AntonLydike.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":"2018-01-15T19:39:09.000Z","updated_at":"2019-01-04T11:57:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"3665fb2b-7682-4d09-a536-7246d9d70c21","html_url":"https://github.com/AntonLydike/PasswordGen","commit_stats":{"total_commits":4,"total_committers":1,"mean_commits":4.0,"dds":0.0,"last_synced_commit":"8fd2e8d2be117a418215d1f7064fc79c75055668"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonLydike%2FPasswordGen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonLydike%2FPasswordGen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonLydike%2FPasswordGen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonLydike%2FPasswordGen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AntonLydike","download_url":"https://codeload.github.com/AntonLydike/PasswordGen/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247262765,"owners_count":20910303,"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","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":["password-generator"],"created_at":"2024-10-08T06:04:42.262Z","updated_at":"2025-04-04T23:22:22.388Z","avatar_url":"https://github.com/AntonLydike.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PasswordGen\n\nGenerate passwords from dictionaries.\n\nThe Bash implementation requires bc, The C one needs openssl (`libssl-dev` for example) to compile\n\n## Usage\n\nFlags:\n\n - `-l|--length \u003clength\u003e` Number of words\n - `-d|--del|--delimiter \u003cdelimiter\u003e` delimiter\n - `-c|--clip` copy password to clipboard (requires [xclip](https://wiki.ubuntuusers.de/xclip/))\n - `--dictionary \u003cdict#\u003e` Only use one dictionary (find ID by passing `--verbose`)\n  **WARNING** This could lead to insecure passwords due to a low number of possible words\n - `--dictpath \u003cpath\u003e` Path to another dictionary directory (with list file)\n - `--verbose` See some useful output (dictionary overview, total number of words available, etc...)\n - **Manipulating Dictionaries**\n    - `--add-dictionary \u003cpath-to-dict\u003e` add dictionary at path\n    - `--remove-dictionary \u003cdict#\u003e` remove dictionary at number `dict#` (can be identified with --verbose flag)\n\n\n## lists\nAt the moment, there are two dictionaries in the `/dictionaries` folder\n\n - german.dic: https://sourceforge.net/projects/germandict/\n - english.dic: https://github.com/dwyl/english-words\n\n## How this program chooses a random word from the Dictionaries\n\n  1. Generate a random integer\n    - bash: `od -A n -t u8 -N 8 /dev/urandom | tr -d ' '`, then calculate `rand % totalWordCount` (unsigned 64 bit integer from /dev/urandom)\n    - C: Generate a random number between 0 and totalWordCount with `randombytes_uniform(uint64_t totalWordCount)`\n  2. find out which dictionary has the word in it\n  3. get that word from that dictionary\n\nsteps 2 and 3 are different if a specific dictionary is forced.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantonlydike%2Fpasswordgen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantonlydike%2Fpasswordgen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantonlydike%2Fpasswordgen/lists"}