{"id":16312715,"url":"https://github.com/stepchowfun/hashpass","last_synced_at":"2025-04-05T10:08:36.160Z","repository":{"id":25110846,"uuid":"28532227","full_name":"stepchowfun/hashpass","owner":"stepchowfun","description":"A simple password manager with a twist.","archived":false,"fork":false,"pushed_at":"2025-03-20T09:13:29.000Z","size":1542,"stargazers_count":116,"open_issues_count":0,"forks_count":22,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-29T09:09:47.057Z","etag":null,"topics":["password","password-manager","security","security-tools"],"latest_commit_sha":null,"homepage":"https://stepchowfun.github.io/hashpass/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stepchowfun.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":"FUNDING.yml","license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","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},"funding":{"github":"stepchowfun"}},"created_at":"2014-12-27T08:24:37.000Z","updated_at":"2025-03-20T09:13:31.000Z","dependencies_parsed_at":"2023-12-14T08:27:48.495Z","dependency_job_id":"a32a205f-7d63-4477-a1d5-bd6c2bb0e353","html_url":"https://github.com/stepchowfun/hashpass","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/stepchowfun%2Fhashpass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stepchowfun%2Fhashpass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stepchowfun%2Fhashpass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stepchowfun%2Fhashpass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stepchowfun","download_url":"https://codeload.github.com/stepchowfun/hashpass/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247318744,"owners_count":20919484,"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","password-manager","security","security-tools"],"created_at":"2024-10-10T21:48:54.656Z","updated_at":"2025-04-05T10:08:36.138Z","avatar_url":"https://github.com/stepchowfun.png","language":"TypeScript","funding_links":["https://github.com/sponsors/stepchowfun"],"categories":[],"sub_categories":[],"readme":"# Hashpass: a simple password manager with a twist\n\n[![Build status](https://github.com/stepchowfun/hashpass/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/stepchowfun/hashpass/actions?query=branch%3Amain)\n\n[Hashpass](https://chrome.google.com/webstore/detail/hashpass/gkmegkoiplibopkmieofaaeloldidnko)\nis a password manager which doesn't store any passwords. Instead, it generates\npasswords on the fly using a\n[cryptographic hash function](https://en.wikipedia.org/wiki/Cryptographic_hash_function)\nof the domain of the website you're visiting and a single universal password\nthat you memorize. This gives you:\n\n- the security of having a unique password for each website,\n- the convenience of only having to memorize one password,\n- the comfort of knowing that neither you nor any third party can lose or leak\n  your passwords.\n\n![Screenshot](https://github.com/stepchowfun/hashpass/blob/main/images/screenshot3.png)\n\n## How it works\n\nFirst, you decide on a _universal password_. That's the only password you need\nto memorize, so make it a good one.\n\nSuppose your universal password is `correcthorsebatterystaple`, and you want to\nsign up for or log into `example.com`. Hashpass combines your universal password\nwith the website domain as follows: `example.com/correcthorsebatterystaple`. It\nthen computes the [SHA-256 hash](http://en.wikipedia.org/wiki/SHA-2) of that\nstring. It hashes it again and again, `2^16` times in total. Finally, it outputs\nthe first 96 bits of the result, encoded as 16 characters in\n[Base64](http://en.wikipedia.org/wiki/Base64). For this example, the final\noutput is `CqYHklMMg9/GTL0g`. That's your password for `example.com`.\n\nFor people who know how to read computer code, the following Python script\nimplements the Hashpass algorithm:\n\n```python\nimport base64\nimport getpass\nimport hashlib\n\ndomain = input('Domain: ').strip().lower()\nuniversal_password = getpass.getpass('Universal password: ')\n\nbits = (domain + '/' + universal_password).encode()\nfor i in range(2 ** 16):\n    bits = hashlib.sha256(bits).digest()\ngenerated_password = base64.b64encode(bits).decode()[:16]\n\nprint('Domain-specific password: ' + generated_password)\n```\n\n## Installation instructions\n\nYou can install Hashpass from the Chrome Web Store\n[here](https://chrome.google.com/webstore/detail/hashpass/gkmegkoiplibopkmieofaaeloldidnko).\nThen you can find the Hashpass button next to your address bar or in the\nextensions dropdown. By default, you can also open Hashpass with `Ctrl+Shift+P`\n(`Cmd+Shift+P` on macOS).\n\n## Website\n\nHashpass is also available on the web at\n[stepchowfun.github.io/hashpass](https://stepchowfun.github.io/hashpass/),\nalthough the Chrome extension is generally more ergonomic to use since it can\ninteract with the page you're logging into.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstepchowfun%2Fhashpass","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstepchowfun%2Fhashpass","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstepchowfun%2Fhashpass/lists"}