ollisteka / chipher_breaker Goto Github PK
View Code? Open in Web Editor NEWPython programm to code a text using substitution chipher, and then hack and decode it
Python programm to code a text using substitution chipher, and then hack and decode it
Взлом шифров. --- Версия 1.2 Автор: Жукова Ольга ([email protected]) --- В данной программе будет реализована возможность взломать любой подстановочный шифр. --- LEARNING ---- Программа позволяет посчитать частоту символов в документе, наиболее часто встречающиеся слова,а также популярные n-граммыю ---- Консольная версия Справка по запуску: Windows: python learn.py --help Linux: python3 learn.py --help Пример запуска: python learn.py A-Za-z input.txt ---- ENCRYPTOR ---- Программа позволяет зашифровать текст, используя указанный или сгенерированный подстановочный шифр. ---- Консольная версия Справка по запуску: Windows: python encrypt.py --help Linux: python3 encrypt.py --help Пример запуска: python encrypt.py -s subst.txt A-Za-z input.txt ДЛЯ ДЕШИФРОВКИ (необходимо иметь использованную для шифровки подстановку): Windows: python encrypt.py -r subst.txt A-Za-z code.txt Linux: python3 encrypt.py -r subst.txt A-Za-z code.txt !!! Не поддерживается Pipe, так как команды не выполняются последовательно, а во второй команде требуется подстановка, которая может быть даже не была ещё сгенерирована ---- DECRYPTOR ---- Программа позволяет расшифровать текст, закодированный с помощью подстановочного шифра. ---- Консольная версия Справка по запуску: Windows: python decrypt.py --help Linux: python3 decrypt.py --help Пример запуска: python decrypt.py A-Za-z stat.txt input.txt ---- Алгоритм декодирования: К любому слову строим маску по следущему принципу: первая буква заменяется на 0, каждая следующая - на 1 больше, если ранее в слове не встречалась, иначе - такой же номер, как и у той, одинаковой буквы (hello - 01223; abcabc-012012). Составляем словарь со статистикой для закодированного текста, затем берем по N слов каждой длины и строим для них маски. Используя оригинальный словарь со статистикой, также строим маски для слов. Получили два словаря, попарно сравниваем маски из каждого. На каждой итерации получаем возможную подстановку. Объединяем её с предыдущей, оставляя только совпадающие буквы. Если данной маске зашифрованного слова не соответствует ни одно слово из словаря, можно не обращать на это внимания,так как возможны 2 варианта: a) такие случаи редки и, когда мы построим таблицу соответствия, расшифровав другие слова, мы однозначно заменим буквы и в этом слове б) текст состоит из уникальных слов, которые редко употребляются и нашей статистики не хватает для дешифрации В конце концов оставляем лишь те буквы, которые можно расшифровать однозначно, остальные заменяем на "_" Алгоритм подбора возможных подстановок: Посчитаем вероятность появления каждой квадрагаммы в тексте, используя данные, полученные с помощью learn.py. Затем, чтобы посчитать вероятность того, что закодированный текст является раскодированным - выделим все квадграммы из него и перемножим вероятности каждой из них. Чем выше полученное число - тем более вероятно, что этот текст - раскодирован.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.