{"id":29270171,"url":"https://github.com/davidb/json-simple-obfuscator","last_synced_at":"2026-03-11T04:30:59.448Z","repository":{"id":295071864,"uuid":"989010490","full_name":"davidB/json-simple-obfuscator","owner":"davidB","description":"a tool to partially hide json value (using unsecure pseudonimize / obfuscate algo)","archived":false,"fork":false,"pushed_at":"2026-03-04T19:40:54.000Z","size":89,"stargazers_count":0,"open_issues_count":2,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-05T01:43:19.559Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidB.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["davidB"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2025-05-23T12:20:12.000Z","updated_at":"2026-03-04T19:40:23.000Z","dependencies_parsed_at":"2025-05-23T14:43:54.603Z","dependency_job_id":"78104d44-31dc-445c-a7db-28112e343a3d","html_url":"https://github.com/davidB/json-simple-obfuscator","commit_stats":null,"previous_names":["davidb/json-simple-obfuscator"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/davidB/json-simple-obfuscator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidB%2Fjson-simple-obfuscator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidB%2Fjson-simple-obfuscator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidB%2Fjson-simple-obfuscator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidB%2Fjson-simple-obfuscator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidB","download_url":"https://codeload.github.com/davidB/json-simple-obfuscator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidB%2Fjson-simple-obfuscator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30370797,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T21:41:54.280Z","status":"online","status_checked_at":"2026-03-11T02:00:07.027Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2025-07-04T22:10:21.578Z","updated_at":"2026-03-11T04:30:59.416Z","avatar_url":"https://github.com/davidB.png","language":"Rust","funding_links":["https://github.com/sponsors/davidB"],"categories":[],"sub_categories":[],"readme":"# json-simple-obfuscator\n\nA tool to partially hide json value (using unsecure pseudonimize / obfuscate algo).\n\n## Goals / Use-cases\n\n- Hide sensitive values into samples json used for test, demo\n- Hide values also when present as part of an other string\n- Idempotent and constant: `apply(a.json) == apply(apply(apply(.... (apply(a.json)))))`, so it could be used as part of pre-commit hook, build stage,...\n- **DO NOT** use it to encrypt secrets,...\n\n## Usage\n\n```bash\n❯ json-simple-obfuscator file1.json file2.json\n\n◇  Obfuscated 2 files\n│\n└  Done!\n```\n\n```bash\n❯ json-simple-obfuscator -h\n\nA tool to partially hide json value (using unsecure pseudonimize / obfuscate algo).\n\nUsage: json-simple-obfuscator [FILE]...\n\nArguments:\n  [FILE]...  path of files to obfuscate\n\nOptions:\n  -h, --help     Print help\n  -V, --version  Print version\n```\n\n### Install\n\nDownload the binary from the [release page](https://github.com/davidB/json-simple-obfuscator/releases).\n\n\u003cdetails\u003e\n\u003csummary\u003eVia shell script\u003c/summary\u003e\n\n```bash\ncurl --proto '=https' --tlsv1.2 -LsSf https://github.com/davidB/json-simple-obfuscator/releases/download/0.2.0/json-simple-obfuscator-installer.sh | sh\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eVia power shell script\u003c/summary\u003e\n\n```powershell\npowershell -ExecutionPolicy Bypass -c \"irm https://github.com/davidB/json-simple-obfuscator/releases/download/0.2.0/json-simple-obfuscator-installer.ps1 | iex\"\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eVia homebrew\u003c/summary\u003e\n\n```bash\nbrew install brew install davidB/tap/json-simple-obfuscator\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eVia cargo\u003c/summary\u003e\n\n```bash\ncargo install json-simple-obfuscator\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eVia mise\u003c/summary\u003e\n\n```toml\n[tools]\n\"ubi:davidB/json-simple-obfuscator\" = \"latest\"\n```\n\u003c/details\u003e\n\n## A simple algorithm\n\n```json\n{\n    \"a\": \"Hello\",\n    \"id\": 123456,\n    \"details\": {\n        \"user\": \"johnD\",\n        \"name\": \"John Doe\",\n        \"url\": \"http://example.com/item/123456\"\n    }\n}\n```\n\nbecomes\n\n```json\n{\n    \"a\": \"Hello\",\n    \"id\": 111111,\n    \"details\": {\n        \"user\": \"aaaaA\",\n        \"name\": \"Aaaa Aaa\",\n        \"url\": \"http://example.com/item/111111\"\n    }\n}\n```\n\n1. Collect values (string or number) of \"sensitive\" fields.\n  the \"sensitive\" fields are field named(in lowercase): `id`, `_id`, `*token`, `*password`, `*secret`, `user`, `*name`, `\n2. For each value, compute the replacement value\n    - for number, replace every digit by `1` (preserve the number of digit, dot \u0026 comma)\n    - for string, replace lowercase by `a` and uppercase by `A`, digit by `1` (preserve other caracteres: )\n3. Search collected values, and replace by the computed replacement into the json as text (to preserve structure, order, comment for json5/jsonc, ...)\n\n## Possible feature (on-demand)\n\nFeedback, PR and feature request are welcomes. By example:\n\n- Option to provide the list of sensitive fields\n- Option to exclude some field name form the sensitive pattern\n- Option to provide fixed replacement (using a lookup table)\n- Option to compute replacement for different alphabet, emoji, ...\n- Option to use random replacement (and break the idempotency)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidb%2Fjson-simple-obfuscator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidb%2Fjson-simple-obfuscator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidb%2Fjson-simple-obfuscator/lists"}