{"id":19450984,"url":"https://github.com/alex-snd/vigener","last_synced_at":"2026-05-29T16:31:00.598Z","repository":{"id":114411625,"uuid":"328158399","full_name":"alex-snd/Vigener","owner":"alex-snd","description":"🔓 The project is intended for convenient key recovery from the ciphertext obtained using the Vigenère cipher.","archived":false,"fork":false,"pushed_at":"2021-02-06T08:49:43.000Z","size":789,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-25T09:29:22.560Z","etag":null,"topics":["cryptography"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alex-snd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-01-09T13:13:04.000Z","updated_at":"2022-07-30T10:23:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"15fd245e-16a8-4a4e-8ff7-05ad87a4ec00","html_url":"https://github.com/alex-snd/Vigener","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/alex-snd/Vigener","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex-snd%2FVigener","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex-snd%2FVigener/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex-snd%2FVigener/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex-snd%2FVigener/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alex-snd","download_url":"https://codeload.github.com/alex-snd/Vigener/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex-snd%2FVigener/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33662205,"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-05-29T02:00:06.066Z","response_time":107,"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":["cryptography"],"created_at":"2024-11-10T16:39:48.809Z","updated_at":"2026-05-29T16:31:00.581Z","avatar_url":"https://github.com/alex-snd.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vigener\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/init_demo.png\" /\u003e\n\u003c/p\u003e\n\nПроект предназначен для удобного восстановления ключа по шифртексту, полученному при помощи шифра [Виженера](https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher).\n\n## Building\n\nДля компиляции проекта необходима система сборки CMake версии не ниже 3.19.2, которую можно скачать на [официальном сайте](https://cmake.org/).\n```shell\n\u003e mkdir build \u0026\u0026 cd build\n\u003e cmake ..\n\u003e cmake --build . --config [Debug | Coverage | Release]\n```\n\n## Usage\n\n```shell\n\u003e Vigener -h\nИспользование: Vigener -i [путь к файлу с шифртекстом] -ia [путь к файлу с аналитическим текстом]\n\nПараметры:\n\n-i  Задает путь к файлу с шифртекстом\n-ia Задает путь к файлу с аналитическим текстом\n-o  Задает путь к файлу для сохранения результата работы программы. По умолчанию - путь файла шифртекста с меткой {processed}\n-a  Задает алфавит шифртекста. По умолчанию - кириллица\n-af Задает путь к файлу с алфавитом шифртекста\n-t  Задает порог для выделения статистики. По умолчанию 6\n-k  Задает длину ключа\n-mk Задает максимальную длину ключа\n\nПри вводе номера группы также можно указать следуюшие значения:\n\n 0: выход из программы с сохранением результата работы. Ctrl + C - выход без сохранения результата\n-1: вывести декодированный шифртекст при текущем ключе\n-2: перейти в режим отмены сдвигов в группах. При вводе сдвига нужно указать номер группу,\nдля которой необходимо отменить все действия.\nДля выхода из режима необходимо ввести значение 0 в поле номера группы.\n\nПри вводе сдвига группы указывается положительное или отрицательное значение для\nциклического сдвига статистики вправо или влево соответсвенно.\nДля выхода из текушей группы необходимо ввести значение 0 в поле сдвига.\n```\n\n\n## Example\n\nВ папке tests содержится файл 'Encrypted text.txt', который содержит в себе шифртекст, полученный при помощи шифра Виженера с размером ключа равным 7. Также в папке tests содержится файл 'Analytical text.txt' с аналитическим текстом.\n\n```shell\n\u003e Vigener -i \"tests/Encrypted text.txt\" -ia \"tests/Analytical text.txt\"\n```\n\nМетодом восстановления ключа является приведение распределения символов алфавита в группах шифртекста к эталонному (полученному из аналитического текста). При верном изменении распределения в группах таблица распрелений должна иметь следующий вид:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/solved_demo.png\" /\u003e\n\u003c/p\u003e\n\n## License\n\n[Apache-2.0 License](LICENSE)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falex-snd%2Fvigener","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falex-snd%2Fvigener","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falex-snd%2Fvigener/lists"}