{"id":16205132,"url":"https://github.com/hexylena/poem-code","last_synced_at":"2025-08-22T07:34:54.054Z","repository":{"id":82749388,"uuid":"396886199","full_name":"hexylena/poem-code","owner":"hexylena","description":"\"The poem code is a simple, and insecure, cryptographic method which was used during World War II by the British Special Operations Executive (SOE) to communicate with their agents in Nazi-occupied Europe.\" - Wikipedia","archived":false,"fork":false,"pushed_at":"2021-08-16T17:03:03.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T19:52:08.043Z","etag":null,"topics":["cryptography","historical-cipher"],"latest_commit_sha":null,"homepage":"","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/hexylena.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":"2021-08-16T16:53:20.000Z","updated_at":"2021-08-16T17:09:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"3d7b4d93-0788-4c7f-9db4-f1a65bdc1db2","html_url":"https://github.com/hexylena/poem-code","commit_stats":{"total_commits":2,"total_committers":1,"mean_commits":2.0,"dds":0.0,"last_synced_commit":"b71310658e2c9f1c12fd891db3aaf9ac70ca62e3"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hexylena/poem-code","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexylena%2Fpoem-code","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexylena%2Fpoem-code/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexylena%2Fpoem-code/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexylena%2Fpoem-code/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hexylena","download_url":"https://codeload.github.com/hexylena/poem-code/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexylena%2Fpoem-code/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266048501,"owners_count":23868738,"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":["cryptography","historical-cipher"],"created_at":"2024-10-10T10:00:12.751Z","updated_at":"2025-07-20T00:32:06.800Z","avatar_url":"https://github.com/hexylena.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Poem Code\n\nImplementation of the [SOE's 'poem code'](https://en.wikipedia.org/wiki/Poem_code) used during WW2, including some poems from [Between Silk \u0026 Cyanide](https://en.wikipedia.org/wiki/Between_Silk_and_Cyanide)\n\n## Usage\n\n```\n$ python poem.py -a enc -r 1 'Hello darling' -p jabberwocky\nHELLODARLING\nASJBKLONXAXRXLXXXGXXIDXXLHE\nHELLODARLINGXXXXXXXXXX\n```\n\nThis encrypt a message with one round of double transposition (i.e. `-r`ounds=1) using the jabberwocky poem. It prints the 'processed' message (upper case A-Z only), the enciphered string, and then the decryption of that to ensure the output looks good. Note the trailing Xs used for padding are quite excessive here.\n\n\u003e ... for security reasons, messages should be at least 200 words long.\n\u003e *via [wikipedia](https://en.wikipedia.org/wiki/Poem_code)*\n\nThis does not (yet) implement security checks but then neither did half the agents in the field :eyes:.\n\n## Decryption\n\nDon't know what poem was used? Using the power of computers...try them all!\n\n```\n$ python poem.py -a dec-test 'IJORVHXAXLLXLXXONRDIGEXXXXXXXXXXX' -r 1\njabberwocky\nHELLODARLINGXXXXXXXXXXXXXXXX\nbodington\nXIXEOXNXXAXXXRLHXXLXXXXGDL\nbodington.alt\nXLHXXREIAXDXXOXLNGLX\nyours\nXLHXAXXRXIEOLLXXXXXDXGXN\ndegaul\nXINLRXHXXADLXOL\ndegaul.alt\nXXXXXAHEIOLXXRLXXXXXXXGNLXXD\nmiddle\nLODXXXLNHLXIGXAXRE\n```\n\n## Alternate poems\n\nAgents were sometimes instructed to use incorrect word numbering by replacing a dash in some words with spaces. For poems including a `-`, an alternative version with the first one replaced with a ` ` is automatically generated under `{name}.alt`.\n\n## License\n\nAGPLv3\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexylena%2Fpoem-code","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhexylena%2Fpoem-code","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexylena%2Fpoem-code/lists"}