{"id":17040381,"url":"https://github.com/carlgo11/password","last_synced_at":"2025-04-12T14:32:52.082Z","repository":{"id":23179047,"uuid":"26535146","full_name":"Carlgo11/password","owner":"Carlgo11","description":"Password generator","archived":false,"fork":false,"pushed_at":"2023-11-01T21:18:59.000Z","size":663,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-26T09:03:53.375Z","etag":null,"topics":["html5","javascript","password","password-generator","security"],"latest_commit_sha":null,"homepage":"https://carlgo11.pw","language":"CSS","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/Carlgo11.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}},"created_at":"2014-11-12T12:34:18.000Z","updated_at":"2024-05-17T16:42:45.000Z","dependencies_parsed_at":"2022-09-03T06:42:10.612Z","dependency_job_id":"18f39cc5-b2d1-4c26-9c6e-731f82e696e7","html_url":"https://github.com/Carlgo11/password","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Carlgo11%2Fpassword","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Carlgo11%2Fpassword/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Carlgo11%2Fpassword/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Carlgo11%2Fpassword/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Carlgo11","download_url":"https://codeload.github.com/Carlgo11/password/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248581085,"owners_count":21128099,"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":["html5","javascript","password","password-generator","security"],"created_at":"2024-10-14T09:09:33.807Z","updated_at":"2025-04-12T14:32:52.061Z","avatar_url":"https://github.com/Carlgo11.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Password generator\n\nThis password generator is a JavaScript-based password generator designed for simplicity, security, and flexibility.  \nUnlike typical password generators, it empowers you to include a wide range of Unicode characters in your passwords.  \nThis tool runs directly on your local machine, ensuring your data's privacy and security. Create strong and unique passwords effortlessly to enhance your online security.\n\n## Features\n\n### Client-side generator\n\nAs this project is only written in vanilla javascript, all code execution is done on the client device. This means that the password is never sent over the Internet.  \n\nFor those curios on how the code is written, here's the relevant password-creation code along with comments:\n\n```JS\ndocument.getElementById('generate').addEventListener('click', () =\u003e {\n    const availableChars = getAvailableChars(); // Fetch array of all allowed characters\n    const maxLength = document.getElementById('length').value; // Fetch int of desired password length\n\n    const passwordArray = [];\n    for (let i = 0; i \u003c maxLength; i++) { // Continue to add characters until desired password length is reached\n        const typeIndex = getRandomInt(0, availableChars.length - 1); // Pick random allowed character type\n        const [min, max] = getRandomRange(availableChars[typeIndex]); // Pick random character corresponding to the desired character type\n        passwordArray.push(String.fromCharCode(getRandomInt(min, max))); // Add character to password string\n    }\n\n    document.getElementById('password').value = passwordArray.join(''); // Change value of 'password'-element in DOM to the new password\n});\n```\n\n## Options\n\nHere is a list of all the character options available on the website:\n\n* **Lowercase characters**  \n  This option adds a-z as available characters.\n\n* **Uppercase characters**  \nThis option adds A-Z as available characters.\n\n* **Numbers**  \nThis option adds 0-9 as available characters.\n\n* **Special characters**  \nThe option adds characters such as !, @ and ?. These are often required in strict password policies.\n\n* **Unicode characters**  \nWhilst every character is technically a unicode character, in this case Unicode characters means any character outside the normal A-Z 0-9 and aforementioned special characters.  \nThese characters can be things like emojis, non-english characters like Æ, Ü, 漢, Г or Š but can also be parts of a letter or even blank letters. As such, these types of characters have to be copy-pasted and can't be written on a normal keyboard.\n\n* **Spaces**  \nThis option adds blank spaces as available characters for the password generator. Blank spaces can be useful for creating good passwords but older authentication systems sometimes disallow the usage of spaces.\n\n## Deployment\n\nWhilst the project can be hosted on any web server as-is, [carlgo11.pw](https://carlgo11.pw/) performs HTML, CSS and JS minification before deploying to production.  \nThe following code is run at build-time:\n\n```shell\nnpm i html-minifier uglify-js \u0026\u0026\nnpx html-minifier --collapse-whitespace --remove-comments --remove-script-type-attributes -o index.html index.html \u0026\u0026\nnpx html-minifier --collapse-whitespace --remove-comments --remove-script-type-attributes -o css/main.css css/main.css \u0026\u0026\nnpx uglify-js js/main.js -o js/main.js\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarlgo11%2Fpassword","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcarlgo11%2Fpassword","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarlgo11%2Fpassword/lists"}