{"id":21675024,"url":"https://github.com/thaliaarchi/gocipher","last_synced_at":"2025-04-12T04:30:53.883Z","repository":{"id":57563747,"uuid":"95128221","full_name":"thaliaarchi/gocipher","owner":"thaliaarchi","description":"A Go library implementing many classical ciphers","archived":false,"fork":false,"pushed_at":"2020-11-17T22:59:07.000Z","size":54161,"stargazers_count":11,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-26T00:01:48.668Z","etag":null,"topics":["cipher","cipher-algorithms","golang"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thaliaarchi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-06-22T15:10:06.000Z","updated_at":"2025-03-17T01:44:25.000Z","dependencies_parsed_at":"2022-09-16T13:33:29.356Z","dependency_job_id":null,"html_url":"https://github.com/thaliaarchi/gocipher","commit_stats":null,"previous_names":["andrewarchi/gocipher"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thaliaarchi%2Fgocipher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thaliaarchi%2Fgocipher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thaliaarchi%2Fgocipher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thaliaarchi%2Fgocipher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thaliaarchi","download_url":"https://codeload.github.com/thaliaarchi/gocipher/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248517034,"owners_count":21117368,"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":["cipher","cipher-algorithms","golang"],"created_at":"2024-11-25T13:50:41.892Z","updated_at":"2025-04-12T04:30:53.845Z","avatar_url":"https://github.com/thaliaarchi.png","language":"Go","readme":"# gocipher\n\ngocipher is a collection of classical ciphers and cryptanalysis tools.\ngocipher is not cryptographically secure. Algorithms do not use\nconstant-time operations and are thus susceptible to timing attacks.\n\n## Classical ciphers\n\n- [Alberti cipher](https://en.wikipedia.org/wiki/Alberti_cipher)\n    | [dCode](http://www.dcode.fr/alberti-cipher)\n- ✔ **[Atbash cipher](https://en.wikipedia.org/wiki/Atbash)**\n    | [dCode](http://www.dcode.fr/atbash-mirror-cipher)\n    | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/atbash-cipher/)\n    | [Rumkin.com](http://rumkin.com/tools/cipher/atbash.php)\n- AMSCO cipher\n    | [dCode](http://www.dcodme.fr/amsco-cipher)\n- [Autokey cipher](https://en.wikipedia.org/wiki/Autokey_cipher)\n    | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/autokey/)\n- [Baconian cipher](https://en.wikipedia.org/wiki/Bacon%27s_cipher)\n    | [dCode](http://www.dcode.fr/bacon-cipher)\n    | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/baconian/)\n    | [Rumkin.com](http://rumkin.com/tools/cipher/baconian.php)\n- [Jefferson disk / Bazeries cylinder](https://en.wikipedia.org/wiki/Jefferson_disk),\n  [M-94](https://en.wikipedia.org/wiki/M-94)\n    | [dCode](http://www.dcode.fr/bazeries-cipher)\n- [Scytale cipher](https://en.wikipedia.org/wiki/Scytale)\n    | [dCode](http://www.dcode.fr/scytale-cipher)\n- [Monoaplhabetic substitution cipher (simple substitution)](https://en.wikipedia.org/wiki/Substitution_cipher#Simple_substitution)\n    | [dCode](http://www.dcode.fr/monoalphabetic-substitution)\n    | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/simple-substitution/)\n    | [Rumkin.com](http://rumkin.com/tools/cipher/substitution.php)\n    - ✔ **[Affine cipher](https://en.wikipedia.org/wiki/Affine_cipher)**\n        | [dCode](http://www.dcode.fr/affine-cipher)\n        | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/affine/)\n        | [Rumkin.com](http://rumkin.com/tools/cipher/affine.php)\n    - ✔ **Caesar cipher**\n        | [dCode](http://www.dcode.fr/caesar-cipher)\n        | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/caesar/)\n        | [Rumkin.com](http://rumkin.com/tools/cipher/caesar.php)\n    - Keyboard Coordinates\n        | [dCode](http://www.dcode.fr/keyboard-coordinates)\n    - Keyboard Shift cipher\n        | [dCode](http://www.dcode.fr/keyboard-shift-cipher)\n    - ✔ **Keyed caesar cipher**\n        | [Rumkin.com](http://rumkin.com/tools/cipher/caesar-keyed.php)\n    - Letter-to-number\n        | [dCode](http://www.dcode.fr/letter-number-cipher)\n        | [Rumkin.com](http://rumkin.com/tools/cipher/numbers.php)\n    - ✔ **[Morse Code](https://en.wikipedia.org/wiki/Morse_code)**\n        | [dCode](http://www.dcode.fr/morse-code)\n        | [Rumkin.com](http://rumkin.com/tools/cipher/morse.php)\n        - Wabun Code\n            | [dCode](http://www.dcode.fr/wabun-code)\n    - Music Notes\n        | [dCode](http://www.dcode.fr/music-notes)\n    - ✔ **ROT cipher**\n        | [dCode](http://www.dcode.fr/rot-cipher)\n    - ✔ **ROT-5**\n        | [dCode](http://www.dcode.fr/rot5-cipher)\n        | [Web Utils](http://www.webutils.pl/ROTencode)\n    - ✔ **ROT-13**\n        | [dCode](http://www.dcode.fr/rot-13-cipher)\n        | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/rot13/)\n        | [Rumkin.com](http://rumkin.com/tools/cipher/rot13.php)\n        | [Web Utils](http://www.webutils.pl/ROTencode)\n    - ✔ **ROT-18**\n        | [Web Utils](http://www.webutils.pl/ROTencode)\n    - ✔ **ROT-47**\n        | [dCode](http://www.dcode.fr/rot-47-cipher)\n        | [Web Utils](http://www.webutils.pl/ROTencode)\n    - Shift cipher\n        | [dCode](http://www.dcode.fr/shift-cipher)\n    - Trifid cipher\n        | [dCode](http://www.dcode.fr/trifide-cipher)\n        | [Practical Cryptograpgy](http://www.practicalcryptography.com/ciphers/classical-era/trifid/)\n- [Homophonic Substitution cipher](https://en.wikipedia.org/wiki/Substitution_cipher#Homophonic_substitution)\n    | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/homophonic-substitution/)\n    - [Beale ciphers](https://en.wikipedia.org/wiki/Beale_ciphers)\n    - [Book cipher](https://en.wikipedia.org/wiki/Book_cipher)\n        | [dCode](http://www.dcode.fr/book-cipher)\n    - [Straddling checkerboard cipher](https://en.wikipedia.org/wiki/Straddling_checkerboard)\n        | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/straddle-checkerboard/)\n    - Trithemius Ave Maria\n        | [dCode](http://www.dcode.fr/trithemius-ave-maria)\n\n- Alphabetical Ranks Added\n    | [dCode](http://www.dcode.fr/alphabetical-ranks-added)\n- Bellaso cipher\n    | [dCode](http://www.dcode.fr/bellaso-cipher)\n- Bifid cipher\n    | [dCode](http://www.dcode.fr/bifid-cipher)\n    | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/bifid/)\n    | [Rumkin.com](http://rumkin.com/tools/cipher/bifid.php)\n- Caesar Box cipher\n    | [dCode](http://www.dcode.fr/caesar-box-cipher)\n- Cardan Grille\n    | [dCode](http://www.dcode.fr/cardan-grille)\n- Chaocipher\n    | [dCode](http://www.dcode.fr/chao-cipher)\n- Chinese Code\n    | [dCode](http://www.dcode.fr/chinese-code)\n- Codes and Nomenclators cipher\n    | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/codes-and-nomenclators/)\n- Columnar Transposition\n    | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/columnar-transposition/)\n    | [Rumkin.com](http://rumkin.com/tools/cipher/coltrans.php)\n    - Double Transposition\n        | [Rumkin.com](http://rumkin.com/tools/cipher/coltrans-double.php)\n        | [dCode](http://www.dcode.fr/double-transposition-cipher)\n    - Übchi\n        | [Rumkin.com](http://rumkin.com/tools/cipher/ubchi.php)\n- Consonants/Vowels Rank cipher\n    | [dCode](http://www.dcode.fr/consonants-vowels-rank-cipher)\n- Deranged Alphabet cipher\n    | [dCode](http://www.dcode.fr/deranged-alphabet-generator)\n- Four-Square cipher\n    | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/four-square/)\n- ✔ **[Fractionated Morse cipher](https://en.wikipedia.org/wiki/Transposition_cipher#Fractionation)**\n    | [dCode](http://www.dcode.fr/fractionated-morse)\n    | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/fractionated-morse/)\n- Gold Bug cipher\n    | [dCode](http://www.dcode.fr/gold-bug-poe)\n- Hill cipher\n    | [dCode](http://www.dcode.fr/hill-cipher)\n    | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/hill/)\n- Ideograms cipher\n    | [dCode](http://www.dcode.fr/ideograms)\n- LSPK90 Clockwise\n    | [dCode](http://www.dcode.fr/lspk90-cw-leet-speak-90-degrees-clockwise)\n- Mexican Army cipher wheel\n    | [dCode](http://www.dcode.fr/mexican-army-cipher-wheel)\n- Modulo cipher\n    | [dCode](http://www.dcode.fr/modulo-cipher)\n- Navajo Code\n    | [dCode](http://www.dcode.fr/navajo-code)\n- ✔ **One Time Pad**\n    | [Rumkin.com](http://rumkin.com/tools/cipher/otp.php)\n- Playfair cipher\n    | [dCode](http://www.dcode.fr/playfair-cipher)\n    | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/playfair/)\n    | [Rumkin.com](http://rumkin.com/tools/cipher/playfair.php)\n    - Two Square cipher\n        [dCode](http://www.dcode.fr/two-square-cipher)\n- ✔ **[Polybius square](https://en.wikipedia.org/wiki/Polybius_square)**\n    | [dCode](http://www.dcode.fr/polybius-cipher)\n    | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/polybius-square/)\n    - [ADFGVX cipher](https://en.wikipedia.org/wiki/ADFGVX_cipher)\n        | [dCode](http://www.dcode.fr/adfgvx-cipher)\n        | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/adfgvx/)\n    - [ADFGX cipher](https://en.wikipedia.org/wiki/ADFGVX_cipher#Operation_of_ADFGX)\n        | [dCode](http://www.dcode.fr/adfgx-cipher)\n        | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/adfgx/)\n    - [Nihilist cipher](https://en.wikipedia.org/wiki/Nihilist_cipher)\n        | [dCode](http://www.dcode.fr/nihilist-cipher)\n- Porta cipher\n    | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/porta/)\n- ✔ **Rail-fence (ZigZag) cipher**\n    | [dCode](http://www.dcode.fr/rail-fence-cipher)\n    | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/rail-fence/)\n    | [Rumkin.com](http://rumkin.com/tools/cipher/railfence.php)\n    - Redefence cipher\n        | [dCode](http://www.dcode.fr/redefence-cipher)\n- Rotate\n    | [Rumkin.com](http://rumkin.com/tools/cipher/rotate.php)\n- Running Key cipher\n    | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/running-key/)\n- Skip\n    | [Rumkin.com](http://rumkin.com/tools/cipher/skip.php)\n- [URL encode](https://en.wikipedia.org/wiki/Percent-encoding)\n    | [Web Utils](http://www.webutils.pl/URLencode)\n- Vigenère cipher\n    | [dCode](http://www.dcode.fr/vigenere-cipher)\n    | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/vigenere-gronsfeld-and-autokey/)\n    | [Rumkin.com](http://rumkin.com/tools/cipher/vigenere.php)\n    - Beaufort cipher\n        | [dCode](http://www.dcode.fr/beaufort-cipher)\n        | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/classical-era/beaufort/)\n        - Variant Beaufort cipher\n            [dCode](http://www.dcode.fr/variant-beaufort-cipher)\n    - Gronsfeld cipher\n        | [dCode](http://www.dcode.fr/gronsfeld-cipher)\n        | [Practical Cryptograhy](http://www.practicalcryptography.com/ciphers/classical-era/vigenere-gronsfeld-and-autokey/)\n        | [Rumkin.com](http://rumkin.com/tools/cipher/gronsfeld.php)\n    - Keyed Vigenère cipher\n        | [Rumkin.com](http://rumkin.com/tools/cipher/vigenere-keyed.php)\n    - Multiplication Vigenère cipher\n        | [dCode](http://www.dcode.fr/multiplication-vigenere-cipher)\n    - ✔ **[Trithemius cipher](https://en.wikipedia.org/wiki/Tabula_recta#Trithemius_cipher)**\n        | [dCode](http://www.dcode.fr/trithemius-cipher)\n    - Vernam cipher\n        | [dCode](http://www.dcode.fr/vernam-cipher)\n    - [Vigenère autokey cipher (autoclave cipher)](https://en.wikipedia.org/wiki/Autokey_cipher)\n        | [dCode](http://www.dcode.fr/autoclave-cipher)\n        | [Rumkin.com](http://rumkin.com/tools/cipher/vigenere-autokey.php)\n- XOR cipher\n    | [dCode](http://www.dcode.fr/xor-cipher)\n\n## Mechanical ciphers\n\n- Enigma cipher\n    | [dCode](http://www.dcode.fr/enigma-machine-cipher)\n    | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/mechanical-era/enigma/)\n- Lorenz cipher\n    | [Practical Cryptography](http://www.practicalcryptography.com/ciphers/mechanical-era/lorenz/)\n- [M-209](https://en.wikipedia.org/wiki/M-209)\n- [SIGABA](https://en.wikipedia.org/wiki/SIGABA)\n\n## Binary-to-text encoding\n\n- [Ascii85](https://en.wikipedia.org/wiki/Ascii85)\n    | [dCode](http://www.dcode.fr/ascii-85-encoding)\n    | [Web Utils](http://www.webutils.pl/Ascii85)\n- [Base16](https://en.wikipedia.org/wiki/Base64)\n- [Base32](https://en.wikipedia.org/wiki/Base32)\n- [Base58](https://en.wikipedia.org/wiki/Base58)\n- [Base64](https://en.wikipedia.org/wiki/Base64)\n    | [dCode](http://www.dcode.fr/base-64-coding)\n    | [Rumkin.com](http://rumkin.com/tools/cipher/base64.php)\n    | [Wikibooks](https://en.wikibooks.org/wiki/Algorithm_Implementation/Miscellaneous/Base64)\n- [Base91](https://en.wikipedia.org/wiki/Binary-to-text_encoding#Encoding_standards)\n    | [dCode](http://www.dcode.fr/base-91-encoding)\n- [UUEncode](https://en.wikipedia.org/wiki/Uuencoding)\n    | [dCode](http://www.dcode.fr/uu-encoding)\n    | [Web Utils](http://www.webutils.pl/UUencode)\n- [XXEncode](https://en.wikipedia.org/wiki/Xxencoding)\n    | [Web Utils](http://www.webutils.pl/XXencode)\n\n## Bases\n\n- Base 2 \u003c-\u003e Base 10\n    | [dCode](http://www.dcode.fr/binary-code)\n- Base 26 \u003c-\u003e Base 10\n    | [dCode](http://www.dcode.fr/base-26-cipher)\n\n## Barcodes\n\n- [Code 39](https://en.wikipedia.org/wiki/Code_39)\n    | [dCode](http://www.dcode.fr/barcode-39)\n- [Code 128](https://en.wikipedia.org/wiki/Code_128)\n    | [dCode](http://www.dcode.fr/barcode-128)\n\n## Symmetric key encryption\n\n- [RC2](https://en.wikipedia.org/wiki/RC2)\n- ✔ **[RC4](https://en.wikipedia.org/wiki/RC4)**\n    - ✔ **[RC4A](https://en.wikipedia.org/wiki/RC4#RC4A)**\n    - [VMPC (Variably Modified Permutation Composition)](https://en.wikipedia.org/wiki/Variably_Modified_Permutation_Composition)\n    - [RC4+](https://en.wikipedia.org/wiki/RC4#RC4.2B)\n    - [Spritz](https://en.wikipedia.org/wiki/RC4#Spritz)\n- [RC5](https://en.wikipedia.org/wiki/RC5)\n- [RC6](https://en.wikipedia.org/wiki/RC6)\n\n## Public key\n\n- [RSA](https://en.wikipedia.org/wiki/RSA_(cryptosystem))\n\n## Hash functions\n\n- [HAVAL](https://en.wikipedia.org/wiki/HAVAL)\n    | [Web Utils](http://www.webutils.pl/Haval-Hash-Calculator)\n- [MD2](https://en.wikipedia.org/wiki/MD2_(cryptography))\n- [MD4](https://en.wikipedia.org/wiki/MD4)\n- [MD5](https://en.wikipedia.org/wiki/MD5)\n    | [dCode](http://www.dcode.fr/md5-hash)\n    | [Web Utils](http://www.webutils.pl/MD5_Calculator)\n- [MD6](https://en.wikipedia.org/wiki/MD6)\n- [RIPEMD](https://en.wikipedia.org/wiki/RIPEMD)\n    | [Web Utils](http://www.webutils.pl/RIPEMD_Calculator)\n- [SHA-0](https://en.wikipedia.org/wiki/SHA-1#SHA-0)\n- [SHA-1](https://en.wikipedia.org/wiki/SHA-1)\n    | [dCode](http://www.dcode.fr/sha1-hash)\n    | [Web Utils](http://www.webutils.pl/SHA1_Calculator)\n- [SHA-2](https://en.wikipedia.org/wiki/SHA-2)\n- [SHA-3](https://en.wikipedia.org/wiki/SHA-3)\n- [Tiger](https://en.wikipedia.org/wiki/Tiger_(cryptography))\n    | [Web Utils](http://www.webutils.pl/Tiger-Hash-Calculator)\n\n## Graphical\n\n- Acéré cipher\n    | [dCode](http://www.dcode.fr/acere-cipher)\n- Music Sheet cipher\n    | [dCode](http://www.dcode.fr/music-sheet-cipher)\n- Pigpen cipher\n    | [dCode](http://www.dcode.fr/pigpen-cipher)\n- Templars cipher\n    | [dCode](http://www.dcode.fr/templars-cipher)\n\n## Algoriothms\n\n- Benford's Law\n    | [dCode](http://www.dcode.fr/benford-law)\n- Frequency Analysis\n    | [dCode](http://www.dcode.fr/frequency-analysis)\n    | [Rumkin.com](http://rumkin.com/tools/cipher/frequency.php)\n- Index of Coincidence\n    | [dCode](http://www.dcode.fr/index-coincidence)\n- Middle squares method for pseurorandom number generation\n\n## Utilities\n\n- Characters Type\n    | [dCode](http://www.dcode.fr/characters-type)\n- Charset Converter\n    | [Web Utils](http://www.webutils.pl/Charset-Converter)\n- Crypt\n    | [Web Utils](http://www.webutils.pl/Crypt-Hash-Calculator)\n- Crypto Solver\n    | [Rumkin.com](http://rumkin.com/tools/cipher/cryptogram-solver.php)\n- Cryptogram Assistant\n    | [Rumkin.com](http://rumkin.com/tools/cipher/cryptogram.php)\n- Isogram Generator\n    | [dCode](http://www.dcode.fr/isogram)\n- Text Manipulator\n    | [Rumkin.com](http://rumkin.com/tools/cipher/manipulate.php)\n- Word Desubstitution\n    | [dCode](http://www.dcode.fr/word-desubstitution)\n\n## Lists\n\n- [dCode](http://www.dcode.fr/tools-list#cryptography)\n- [Practical Cryptography](http://www.practicalcryptography.com/ciphers/)\n- [Rumkin.com](http://rumkin.com/tools/cipher/)\n- [Web Utils](http://www.webutils.pl/)\n- [Binary-to-text encoding on Wikipedia](https://en.wikipedia.org/wiki/Binary-to-text_encoding)\n\n## Libraries\n\n- [Caesar Salad](https://github.com/schnittstabil/caesar-salad) (JavaScript)\n- [cipher-machines](https://github.com/keltia/cipher-machines) (Go)\n- [CryptoJS](https://code.google.com/archive/p/crypto-js/) (JavaScript)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthaliaarchi%2Fgocipher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthaliaarchi%2Fgocipher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthaliaarchi%2Fgocipher/lists"}