Bump uncipher.
This commit is contained in:
parent
3eb6017eab
commit
e9806ca4bc
|
@ -7,21 +7,29 @@ robots: noindex
|
|||
|
||||
## Introduction
|
||||
|
||||
The project name is: uncipher
|
||||
You'll give back your project using this protocol: https://mdk.fr/pages/obiree2uaza2sh-rendu.html
|
||||
The project name is: `uncipher`.
|
||||
|
||||
You'll give back your project using [the rendu
|
||||
protocol](https://mdk.fr/pages/obiree2uaza2sh-rendu.html).
|
||||
|
||||
|
||||
## Project
|
||||
|
||||
Make a program taking a dictionary file and a string, like:
|
||||
Make a program taking a string, and optionally a dictionary file, like:
|
||||
|
||||
python3 subst_break.py /usr/share/dict/french 'Cpokpvs mft hfot'
|
||||
python3 subst_break.py --dict /usr/share/dict/french 'Cpokpvs mft hfot'
|
||||
|
||||
Your program should try every possible alphabetic substitution (in the alphabetic or ASCII range, maybe try different alphabets if needed), rank them by probability of being a real clear text (by counting the words being in the dictionary, doing frequency analysis on the letters, whatever...).
|
||||
Your program should try every possible alphabetic substitution (in the
|
||||
alphabetic or ASCII range, maybe try different alphabets if needed),
|
||||
rank them by probability of being a real clear text (by counting the
|
||||
words being in the dictionary, or by doing frequency analysis on the
|
||||
letters, whatever...).
|
||||
|
||||
Your program should then print the most probable one (should easily be the right one in your tests).
|
||||
Your program should then print the most probable one (should easily be
|
||||
the right one in your tests).
|
||||
|
||||
You can write your own implementation of a substitution cipher for tests purpose in the ASCII range like this:
|
||||
You can write your own implementation of a substitution cipher for
|
||||
tests purpose in the ASCII range like this:
|
||||
|
||||
''.join([chr(ord(x) + 1) for x in "Bonjour les gens"])
|
||||
|
||||
|
|
Loading…
Reference in New Issue