{"id":13657968,"url":"https://github.com/offdev/zwsp-steg-js","last_synced_at":"2026-02-03T14:11:43.878Z","repository":{"id":49408796,"uuid":"129635233","full_name":"offdev/zwsp-steg-js","owner":"offdev","description":"Zero-Width Space Steganography, encodes/decodes hidden messages as non printable/readable characters.","archived":false,"fork":false,"pushed_at":"2025-02-13T12:02:40.000Z","size":9,"stargazers_count":152,"open_issues_count":1,"forks_count":18,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-02-13T13:25:22.578Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/offdev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-04-15T17:43:39.000Z","updated_at":"2025-02-13T12:02:44.000Z","dependencies_parsed_at":"2022-09-06T07:30:38.567Z","dependency_job_id":null,"html_url":"https://github.com/offdev/zwsp-steg-js","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/offdev%2Fzwsp-steg-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/offdev%2Fzwsp-steg-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/offdev%2Fzwsp-steg-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/offdev%2Fzwsp-steg-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/offdev","download_url":"https://codeload.github.com/offdev/zwsp-steg-js/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250591931,"owners_count":21455466,"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":"2024-08-02T05:00:54.591Z","updated_at":"2026-02-03T14:11:43.835Z","avatar_url":"https://github.com/offdev.png","language":"JavaScript","funding_links":[],"categories":["JavaScript (71)"],"sub_categories":[],"readme":"# zwsp-steg\r\nZero-Width Space Steganography. Encodes and decodes hidden messages as non-printable/readable characters.\r\n\r\n[![npm](https://img.shields.io/npm/v/zwsp-steg.svg)](https://www.npmjs.com/package/zwsp-steg)\r\n[![Travis](https://img.shields.io/travis/offdev/zwsp-steg-js.svg)](https://travis-ci.org/offdev/zwsp-steg-js)\r\n[![dependencies Status](https://david-dm.org/offdev/zwsp-steg-js/status.svg)](https://david-dm.org/offdev/zwsp-steg-js)\r\n[![devDependencies Status](https://david-dm.org/offdev/zwsp-steg-js/dev-status.svg)](https://david-dm.org/offdev/zwsp-steg-js?type=dev)\r\n[![License](https://img.shields.io/github/license/offdev/zwsp-steg-js.svg)](https://www.apache.org/licenses/LICENSE-2.0)\r\n\r\n### Installation\r\n```bash\r\n$ npm install zwsp-steg\r\n```\r\n\r\n### Usage Example\r\n```.js\r\nconst ZwspSteg = require('zwsp-steg');\r\n\r\nlet encoded = ZwspSteg.encode('hidden message');\r\nlet decoded = ZwspSteg.decode(encoded);\r\n\r\nconsole.log(decoded); // hidden message\r\n```\r\n\r\nNote that decoding a message will ignore all non 'special' characters. That means if you hide your message within a readable string, and decode the whole string, you will only return the hidden message.\r\n\r\n### Parameters\r\nYou can use different sets of characters in different encoding / decoding modes.\r\n\r\n```.js\r\nconst ZwspSteg = require('zwsp-steg');\r\n\r\nZwspSteg.encode('hidden message', ZwspSteg.MODE_ZWSP);\r\nZwspSteg.encode('hidden message', ZwspSteg.MODE_FULL);\r\n```\r\n\r\n#### Character sets used\r\n- **MODE_ZWSP**: Zero-Width Space (\\u200b), Zero-Width Non-Joiner (\\u200c), Zero-Width Joiner (\\u200d)\r\n- **MODE_FULL**: All MODE_ZWSP characters, Left-To-Right Mark (\\u200e), Right-To-Left Mark (\\u200f)\r\n\r\n### License\r\n[Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foffdev%2Fzwsp-steg-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foffdev%2Fzwsp-steg-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foffdev%2Fzwsp-steg-js/lists"}