{"id":20334878,"url":"https://github.com/meeshic/cracked","last_synced_at":"2026-06-11T09:31:48.383Z","repository":{"id":94042833,"uuid":"124716975","full_name":"meeshic/Cracked","owner":"meeshic","description":"Encryption-cracking tool","archived":false,"fork":false,"pushed_at":"2018-03-28T09:13:28.000Z","size":309,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-04T13:34:15.332Z","etag":null,"topics":["cipher","cipher-algorithms","java","substitution-cipher","tokenizer"],"latest_commit_sha":null,"homepage":"","language":"Java","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/meeshic.png","metadata":{"files":{"readme":"README.md","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":"2018-03-11T02:36:51.000Z","updated_at":"2018-03-28T09:14:45.000Z","dependencies_parsed_at":"2023-07-26T13:01:01.152Z","dependency_job_id":null,"html_url":"https://github.com/meeshic/Cracked","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/meeshic/Cracked","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meeshic%2FCracked","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meeshic%2FCracked/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meeshic%2FCracked/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meeshic%2FCracked/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/meeshic","download_url":"https://codeload.github.com/meeshic/Cracked/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meeshic%2FCracked/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34192870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"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":["cipher","cipher-algorithms","java","substitution-cipher","tokenizer"],"created_at":"2024-11-14T20:38:27.525Z","updated_at":"2026-06-11T09:31:48.347Z","avatar_url":"https://github.com/meeshic.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cracked\n\nNote: Project reformatted C++ -\u003e Java\n\nSoftware program that cracks a given arbitrary encrypted message and returns all possible legitimate English translations, sorted alphabetically. The messages are encoded using the Random Substitution Cipher.\n\nAlgorithm used:\n1. Tokenize cipher\n2. Choose cipher word from tokens that has not been chosen and has the most encoded letters that do not have a translation\n3. Find words in dictionary that match the cipher word's letter pattern (e.g. yummy -\u003e 12331)\n4. For each matched word, create a mapping (encoded-\u003edecoded)\n5. Apply mapping on cipher\n6a. If all words of cipher were translated and are valid, add to output \u0026 go to step 4.\n6b. If not completely translated but valid, recurse with current mapping to step 2.\n6c. If the translation is not valid, throw away current mapping.\n\n\n**Class notes**:\n\nMyHash\n- Hash table implemented with arrays and non-built in linked lists.\n- Chaining is used for collision resolution.\n\nTokenizerImpl\n- Tokenize sentence into list of words using given separator list ( ,\\\";:.!()[]{}\u0026^%$#-)\n- tokenize(...): O(N+K), where N=length of string to split, K=regex pattern length\n\nDictionaryImpl\n- loadDictionary(dictFilePath): uses Java I/O operations to read contents of dictionary text file\n- findPotentialCandidates(...): O(Q), Q=# English words that match letter pattern of inputted cipher word. This is due to using\n  letter patterns to index dictionary data.\n\nTranslatorImpl\n- A non-built in stack is used to keep track of valid mappings\n\nDecoderImpl\n- Cracks encoded message and returns all valid translations\n\n\n\n*Observation*:\nThe output is of ALL valid English word translations which means the sentence itself could not be grammatically correct, though containing all valid English words. So future work could consist of validating sentences using automata theory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeeshic%2Fcracked","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeeshic%2Fcracked","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeeshic%2Fcracked/lists"}