{"id":17220497,"url":"https://github.com/emedvedev/enigma","last_synced_at":"2025-04-13T22:32:12.991Z","repository":{"id":45711631,"uuid":"74584856","full_name":"emedvedev/enigma","owner":"emedvedev","description":"Enigma cipher machine emulator (CLI + library) written in Go","archived":false,"fork":false,"pushed_at":"2017-02-11T22:22:50.000Z","size":40,"stargazers_count":55,"open_issues_count":0,"forks_count":16,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-27T12:52:40.718Z","etag":null,"topics":["cli","emulator","enigma","enigma-cipher","enigma-machine","enigma-simulator"],"latest_commit_sha":null,"homepage":"","language":"Go","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/emedvedev.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}},"created_at":"2016-11-23T14:35:41.000Z","updated_at":"2024-07-21T02:32:18.000Z","dependencies_parsed_at":"2022-09-17T04:31:45.342Z","dependency_job_id":null,"html_url":"https://github.com/emedvedev/enigma","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emedvedev%2Fenigma","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emedvedev%2Fenigma/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emedvedev%2Fenigma/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emedvedev%2Fenigma/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emedvedev","download_url":"https://codeload.github.com/emedvedev/enigma/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248790687,"owners_count":21162072,"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":["cli","emulator","enigma","enigma-cipher","enigma-machine","enigma-simulator"],"created_at":"2024-10-15T03:52:28.579Z","updated_at":"2025-04-13T22:32:12.740Z","avatar_url":"https://github.com/emedvedev.png","language":"Go","readme":"# Enigma cipher machine emulator\n\n![](https://www.dropbox.com/s/5wb3u29ybxrzphl/Screenshot%202016-11-25%2015.34.47.png?dl=1)\n\nThis is a neat little emulator of various Enigma machines with a lot of\nconfugurable parameters. Somebody hurt your feelings by saying \"my grandmother\nencrypts better than you\"? I've got you covered! With this port of the amazing\n1940's technology you'll be just as good at encrypting things as anyone's\ngrandmother.\n\n### Usage\n\nThis repository contains both the CLI tool and its underlying library written in Go.\nThe library is documented on [GoDoc](https://godoc.org/github.com/emedvedev/enigma).\n\nAs for the CLI tool, a simple `go get` should do it:\n\n```\ngo get github.com/emedvedev/enigma/cmd/enigma\n```\n\nWhile the full CLI syntax is a bit verbose, it's actually possible to use the tool\nwithout any source code modifications, config files, or Enigma knowledge:\n\n```\nenigma Never gonna give you up, never gonna let you down!\n```\n\nUsing an Enigma machine with default settings is somewhat similar to\nsetting your password to `0000`. Let's up our security game:\n\n```\nenigma youtu.be/dQw4w9WgXcQ --rotors Beta VI I III --reflector C-Thin --plugboard AD SF ET RY HK JL QZ WX UM OP --rings 10 5 16 10\n```\n\nMuch better! And of course, `enigma -h` will give you the complete description of\nparameters and usage.\n\nImportantly, since Enigma machines only have 26 keys, spaces are replaced with `X`,\nand everything outside of the English alphabet is discarded. It's up to you to\ncome up with a suitable encoding.\n\nEnjoy!\n\n## Enigma models and features\n\nAlmost everything from the German Enigma machines can be configured in this\nemulator:\n\n* Rotor set: rotors from M3 and M4, the most famous Enigma machines, are\n  pre-loaded.\n\n* Reflector: reflectors A, B, C (as well as thin B and C versions for M4) are\n  supported.\n\n* Plugboard: any number of letter pairs is accepted. Plugboard configuration\n  is optional.\n\n* Ring offsets and starting position of the rotors.\n\nM3 and M4 can be fully emulated with the right parameters, and if it's\nnot enough, new rotors and reflectors can be added quite easily: just\nadd a new entry to the list in `rotors.go`, and that's it. Notches for\nrotor turnover are optional.\n\nSome exotic Enigma variants and implementations, as well\nas devices such as Uhr, are not supported due to my chronic lack of\nspare time. Your pull requests would be most welcome!\n\n## Further reading\n\nA bunch of material on Enigma machines, in no particular order. Explanations, specs,\nother emulators.\n\n- http://users.telenet.be/d.rijmenants/en/enigmatech.htm\n- http://www.codesandciphers.org.uk/enigma/index.htm\n- http://www.codesandciphers.org.uk/enigma/rotorspec.htm\n- http://kerryb.github.io/enigma/\n- http://enigma.louisedade.co.uk/enigma.html\n- http://people.physik.hu-berlin.de/~palloks/js/enigma/enigma-u_v20_en.html\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femedvedev%2Fenigma","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femedvedev%2Fenigma","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femedvedev%2Fenigma/lists"}