{"id":15395462,"url":"https://github.com/stef/obfuscat","last_synced_at":"2025-07-20T10:34:13.115Z","repository":{"id":66440211,"uuid":"579458128","full_name":"stef/obfuscat","owner":"stef","description":"simple tool to handle code-phrase mappings","archived":false,"fork":false,"pushed_at":"2022-12-17T19:05:55.000Z","size":17,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-27T20:46:12.404Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stef.png","metadata":{"files":{"readme":"readme.org","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2022-12-17T19:05:30.000Z","updated_at":"2023-09-08T18:39:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"371037f8-c7e7-4df6-9d43-72856458444a","html_url":"https://github.com/stef/obfuscat","commit_stats":{"total_commits":1,"total_committers":1,"mean_commits":1.0,"dds":0.0,"last_synced_commit":"570fb95073d7dc9ee5be292932326312122fa6ef"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/stef/obfuscat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stef%2Fobfuscat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stef%2Fobfuscat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stef%2Fobfuscat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stef%2Fobfuscat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stef","download_url":"https://codeload.github.com/stef/obfuscat/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stef%2Fobfuscat/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266111439,"owners_count":23877980,"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-10-01T15:28:26.469Z","updated_at":"2025-07-20T10:34:08.099Z","avatar_url":"https://github.com/stef.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# obfuscat\n\nSimple tool that replaces sensitive phrases with code-phrases. Similar\nto NSA code-words[1].\n\nA typical use-case is if you have a bunch of entities whose identity\nshould not be known to 3rd parties, but those 3rd parties need to do\nstatistics on data about those entities. For example obfuscating your\nclients identities while providing information about your projects to\nan accountant that works in the cloud.\n\nUsage is simple\n\n** Creating a new code-phrase\n\n#+BEGIN_EXAMPLE\n% ./obfuscat.py \"secret cust1 super secret project0\" \"my accounting obfuscat pepper\" 5\nblackjack-matchmaker-pheasant-hideaway-uproot\n#+END_EXAMPLE\n\nThe tool needs 3 parameters:\n   1. the sensitive phrase\n   2. a static non-public pepper\n   3. the number of code-words in the code-phrase\n\nThe pepper serves dual purpose, one it foils pre-computation attacks,\nand it also serves as the filename for storing all\nsensitive - code-phrase mappings. The pepper phrase and the file which\nhas the name as the pepper phrase postfixed with \".map\" should be kept\ninside your organization and not shared with the 3rd party or anyone\nelse. It is assumed that both the pepper and the .map file do not have\nany value in your organization, since your members have already access\nto both values of any mapping.\n\nThe number of code-words in the code-phrase are a compromise between\nlength of code-phrases and number of sensitive phrases that can\nmaximum be mapped.\n\n** Mapping back a code-phrase to its original\n\n#+BEGIN_EXAMPLE\n% ./obfuscat.py -d blackjack-matchmaker-pheasant-hideaway-uproot \"my accounting obfuscat pepper\"\nsecret cust1 super secret project0\n#+END_EXAMPLE\n\nThe unmasking of code-phrases has 3 parameters as well:\n  - the \"-d\" switch\n  - the code-phrase\n  - the pepper (and implicitly also the .map file)\n\n[1] https://www.electrospaces.net/p/nsas-tao-division-codewords.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstef%2Fobfuscat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstef%2Fobfuscat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstef%2Fobfuscat/lists"}