{"id":24292421,"url":"https://github.com/nikkow/passpwnd","last_synced_at":"2026-04-19T00:35:45.562Z","repository":{"id":57688069,"uuid":"427427648","full_name":"nikkow/passpwnd","owner":"nikkow","description":"A no-deps NodeJS password checker","archived":false,"fork":false,"pushed_at":"2022-03-23T16:10:35.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-09T13:04:26.278Z","etag":null,"topics":["leaks","nodejs","password","security","utility"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/nikkow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-12T16:34:27.000Z","updated_at":"2022-03-23T16:10:11.000Z","dependencies_parsed_at":"2022-08-25T15:41:35.056Z","dependency_job_id":null,"html_url":"https://github.com/nikkow/passpwnd","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/nikkow/passpwnd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikkow%2Fpasspwnd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikkow%2Fpasspwnd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikkow%2Fpasspwnd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikkow%2Fpasspwnd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nikkow","download_url":"https://codeload.github.com/nikkow/passpwnd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikkow%2Fpasspwnd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31989970,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"ssl_error","status_checked_at":"2026-04-18T20:23:29.375Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["leaks","nodejs","password","security","utility"],"created_at":"2025-01-16T15:44:02.598Z","updated_at":"2026-04-19T00:35:45.543Z","avatar_url":"https://github.com/nikkow.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"docs/logo.jpg\" alt=\"passpwnd\" /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003cb\u003ea no-dependencies NodeJS compromised password checker\u003c/b\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\t\n\t\u003cimg alt=\"GitHub repo size\" src=\"https://img.shields.io/github/repo-size/nikkow/passpwnd?style=flat-square\" /\u003e \u003cimg alt=npm\" src=\"https://img.shields.io/npm/v/passpwnd?style=flat-square\" /\u003e \u003cimg alt=NPM\" src=\"https://img.shields.io/npm/l/passpwnd?style=flat-square\" /\u003e\n\u003c/p\u003e\n\nThis tool checks whether a given password is part of a known data leak, thus potentially compromised. It is based on Troy Hunt's [Have I Been Pwned](https://haveibeenpwned.com) services.\n\n* **No dependencies**: this tool relies only on core modules of NodeJS and does not import any 3rd-party libraries. \n* **No password is sent over the network**: this tool only sends a fragment of a hash generated from the given password to verify whether it is compromised. See the \"How does it work?\" section.\n\n\n## How does it work?\n\nWhen inputting a password, a SHA1 hash is generated and its first 5 characters are sent to the _Have I Been Pwned_ API. \n\nIf the service finds hashes, whose 5 first characters match the ones computed from your input password, they are considered as potential matches and returned in the response. \n\nOnce all potential matches are collected, the script locally compares the full hashed password to the hashes found in leaks. \n\n## Usage\n\nThis package was designed to be imported into your own script or to be used as a stand-alone command-line tool. \n\n### Script\n\n```javascript\nconst passpwnd = require(\"passpwnd\");\n\npasspwnd(\"p4ssw0rd\").then((isPwned) =\u003e {\n\t// isPwned is a boolean. \n\t// set to `true` if password is compromised, `false` otherwise.\n\tconsole.log(isPwned)\n});\n```\n\n### Command-Line\n\n```ssh\npasspwnd p4ssw0rd\n```\nThe command above will return the status of the password: \n\n* **compromised**: the password was found in a leak. You should not use it anywhere! It is not safe.\n* **safe**: the password was not found. It can be considered safe\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikkow%2Fpasspwnd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnikkow%2Fpasspwnd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikkow%2Fpasspwnd/lists"}