{"id":28746204,"url":"https://github.com/ether/ep_hash_auth","last_synced_at":"2025-06-16T14:30:49.253Z","repository":{"id":38361037,"uuid":"43778091","full_name":"ether/ep_hash_auth","owner":"ether","description":"Etherpad plugin that allows the usage of hash values for authentoication in settings.json","archived":false,"fork":false,"pushed_at":"2024-03-16T21:44:37.000Z","size":242,"stargazers_count":6,"open_issues_count":14,"forks_count":11,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-03T02:47:47.485Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ether.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2015-10-06T20:54:16.000Z","updated_at":"2025-02-12T03:25:52.000Z","dependencies_parsed_at":"2024-03-17T00:40:34.460Z","dependency_job_id":"763bcbbb-d962-4e96-be9b-14a1865bf4a9","html_url":"https://github.com/ether/ep_hash_auth","commit_stats":null,"previous_names":["laking/ep_hash_auth"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/ether/ep_hash_auth","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ether%2Fep_hash_auth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ether%2Fep_hash_auth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ether%2Fep_hash_auth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ether%2Fep_hash_auth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ether","download_url":"https://codeload.github.com/ether/ep_hash_auth/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ether%2Fep_hash_auth/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260175633,"owners_count":22970012,"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":[],"created_at":"2025-06-16T14:30:44.521Z","updated_at":"2025-06-16T14:30:49.235Z","avatar_url":"https://github.com/ether.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Publish Status](https://github.com/ether/ep_hash_auth/workflows/Node.js%20Package/badge.svg) ![Backend Tests Status](https://github.com/ether/ep_hash_auth/workflows/Backend%20tests/badge.svg)\n\n# ep_hash_auth\n\nThis [Etherpad](http://etherpad.org) plugin allows the usage of hashed passwords for authentication.\nAs of version 2.x it uses the crypto lib and/or the [bcrypt](https://www.npmjs.com/package/bcrypt) lib for comparison.\nBesides settings.json, it is now possible to store the user-database in a filesystem hierarchy. The hash files are read on authentication.\n\n```JSON\n  \"users\": {\n\t\"admin\": {\"password\": \"admin\",\"is_admin\": true},\n\t\"y\": {\"is_admin\": true, \"hash\": \"b2112aa7399 ... b071ea5976\"},\n\t\"z\": {\"is_admin\": true, \"hash\": \"b5152ab7359 ... a041fa5646\", \"displayname\": \"Jane Doe\"}\n  }\n```\n\noptionally specify hash type and digest, folders and extension, defaults are:\n\n```JSON\n  \"ep_hash_auth\": {\n    \"hash_typ\": \"sha512\",\n    \"hash_dig\": \"hex\",\n    \"hash_dir\": \"/var/etherpad/users\",\n    \"hash_ext\": \"/.hash\",\n    \"hash_adm\": false,\n    \"displayname_ext\": \"/.displayname\"\n  },\n```\nThis means user Alice would have to have her hash in sha512 hex OR in bcrypt format in the following file:\n```Shell\n/var/etherpad/users/Alice/.hash\n```\nThe hash_adm parameter defines the role of file-authenticated users, by default they are not admins.\n\nThe displayname_ext parameter defines from which file the displayname of a user can be read. If the file does not exist for a user, the displayname remains unchanged.\n\n## Generate the hashes\n#### Bcrypt:\n```Shell\napt-get install -yqq python-bcrypt\npython -c 'import bcrypt; print(bcrypt.hashpw(b\"password\", bcrypt.gensalt(rounds=10, prefix=b\"2a\")))'\n```\n#### Scrypt:\n```Javascript\nvar scrypt = require('scrypt');\nconsole.log(scrypt.kdfSync(\"password\", scrypt.paramsSync(0.1)));\n```\n#### Argon2:\n```Javascript\nvar argon2 = require('argon2');\nargon2.hash(\"password\", {timeCost: 4, memoryCost: 2 ** 13, parallelism: 2, type: argon2.argon2i}).then(hash =\u003e {console.log(hash);});\n```\n\n## Credits\n\n* István Király [LaKing](https://github.com/LaKing) (author and maintainer)\n* [Robin `ypid` Schneider](https://github.com/ypid) (contributor)\n* [id01](https://github.com/id01) (contributor)\n\n## the [npm](https://www.npmjs.com/package/ep_hash_auth)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fether%2Fep_hash_auth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fether%2Fep_hash_auth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fether%2Fep_hash_auth/lists"}