def main():
    kws = KeyWordSubstitution()
    kws.create_permutation_dict("LINEIAREALGEBRA")
    myMessage = """
JDIPJ DHDST EETUB TVBMK GDTEA ADCLD TVBMK JDQAU
SLDTJ DFJDG DTEAB SGDAB MNEEC VBMKT BDCLD TVBDF
JDGDT EABSJ FBDOD DFJEC LDTTW DDJDL DTDDF STDGD
TEABS TWDDO BCJDF JECVB MKNDD FLDTT WDDJD GDTEA
LDTTW DDJDQ AUSLD TJDFJ DGDTE ABSGD ABMNE ECTBD
CJDSP OVECE AADGD TEAAD CBSGD ABMNE ECJDF TBG    
    """
    myKey = kws.get_permutation_alphabet()  # gotten from key_word_substitution
    # myMessage = 'When you do the common things in life in an uncommon way, you will command the attention of the world'
    # myKey = 'QWERTYUIOPASDFGHJKLZXCVBNM'
    myMode = 'encrypt'  # set to 'encrypt' or 'decrypt'

    checkValidKey(myKey)

    if myMode == 'encrypt':
        translated = encryptMessage(myKey, myMessage)
    elif myMode == 'decrypt':
        translated = decryptMessage(myKey, myMessage)
    print('Using key %s' % (myKey))
    print('The %sed message is:' % (myMode))
    print(translated)
Beispiel #2
0
class MonoAlfabeticSubstitution(unittest.TestCase):

    def setUp(self):
        self.kws = KeyWordSubstitution()

    def test_2011_opgave_8(self):
        self.kws.create_permutation_dict("LINEAIRE ALGEBRA")
        self.assertEqual("""DECOD EBEST AATUI TVIJF GETAL LENHE TVIJF DEPLU
        SHETD ERDEG ETALI SGELI JKAAN VIJFT IENHE TVIER
        DEGET ALISD RIEME ERDAN HETTW EEDEH ETEER STEGE
        TALIS TWEEM INDER DANVI JFKEE RHETT WEEDE GETAL
        HETTW EEDEP LUSHE TDERD EGETA LISGE LIJKA ANTIE
        NDESO MVANA LLEGE TALLE NISGE LIJKA ANDER TIG""", encryptMessage(self.kws.get_permutation_alphabet(), """JDIPJ DHDST EETUB TVBMK GDTEA ADCLD TVBMK JDQAU
        SLDTJ DFJDG DTEAB SGDAB MNEEC VBMKT BDCLD TVBDF
        JDGDT EABSJ FBDOD DFJEC LDTTW DDJDL DTDDF STDGD
        TEABS TWDDO BCJDF JECVB MKNDD FLDTT WDDJD GDTEA
        LDTTW DDJDQ AUSLD TJDFJ DGDTE ABSGD ABMNE ECTBD
        CJDSP OVECE AADGD TEAAD CBSGD ABMNE ECJDF TBG"""))
Beispiel #3
0
def text_to_numbers_by_keyword(text, keyword):
    kws = KeyWordSubstitution(keyword)
    alpha = " " + kws.get_permutation_alphabet()
    return text_to_numbers(text, alpha)
Beispiel #4
0
def numbers_to_text_by_keyword(number, keyword):
    kws = KeyWordSubstitution(keyword)
    alpha = " " + kws.get_permutation_alphabet()
    return numbers_to_text(number, alpha)
Beispiel #5
0
 def setUp(self):
     self.kws = KeyWordSubstitution()
Beispiel #6
0
class TestKeyWordSubstitution(unittest.TestCase):

    def setUp(self):
        self.kws = KeyWordSubstitution()

    def test_2012_inzending(self):
        self.kws.create_permutation_dict("musketier")
        self.assertEqual("D’ARTAGNAN", self.kws.permute_message("K’MNPMIGMG"))
        self.assertEqual("ARAMIS", self.kws.permute_message("MNMFAO"))
        self.assertEqual("ATHOS", self.kws.permute_message("MPRHO"))
        self.assertEqual("PORTHOS", self.kws.permute_message("JHNPRHO"))

    def test_2013_opgave_2a(self):
        self.kws.create_permutation_dict("STOPLICHTALMELO")
        self.assertEqual(
            "HET STOPLICHT SPRINGT OP ROOD, HET STOPLICHT SPRINGT OP GROEN, IN ALMELO IS ALTIJD WAT TE DOEN – HERMAN FINKERS",
            self.kws.permute_message(
                "HLR QRGJBAOHR QJNAFCR GJ NGGP, HLR QRGJBAOHR QJNAFCR GJ CNGLF, AF SBDLBG AQ SBRAMP WSR RL PGLF – HLNDSF IAFELNQ"))

    def test_2013_opgave_6(self):
        self.kws.create_permutation_dict("GEBROEDERSGRIMM")
        self.assertEqual("ROODKAPJE DUIMENDIK ASSEPOESTER SNEEUWWITJE RAPONSJE",
                         self.kws.permute_message("PKKRCGLAO RUMHOJRMC GQQOLKOQTOP QJOOUWWMTAO PGLKJQAO"))

    def test_2013_opgave_6b(self):
        """Gebazeerd op de lengte van de gebruikte woorden"""
        self.kws.create_permutation_dict("NEGENTIEN")
        self.assertEqual("IDENTIFICATIENUMMER", self.kws.permute_message("DTILSDADGNSDILUKKIQ"))
        self.kws.create_permutation_dict("TWINTIG")
        self.assertEqual("OVERZICHTELIJKSHALVE", self.kws.permute_message("LUGPZDICRGHDEFQCTHUG"))
        self.kws.create_permutation_dict("DRIEENTWINTIG")
        self.assertEqual("RUITENSPROEIERVLOEISTOF", self.kws.permute_message("OSAQNJPLOKNANOUFKNAPQKT"))
        self.kws.create_permutation_dict("VIJFENTWINTIG")
        self.assertEqual("LANGEAFSTANDSBOMMENWERPER", self.kws.permute_message("CVHTEVNPQVHFPIKDDEHUEOLEO"))
        self.kws.create_permutation_dict("ZEVENENTWINTIG")
        self.assertEqual("HOTTENTOTTENTENTOONSTELLING", self.kws.permute_message("GJPPTHPJPPTHPTHPJJHOPTDDAHI"))
        self.kws.create_permutation_dict("DERTIG")
        self.assertEqual("LEVENSVERZEKERINGSMAATSCHAPPIJ", self.kws.permute_message("JIVILQVIPZIHIPCLAQKDDSQRBDNNCF"))
        self.kws.create_permutation_dict("VIERENDERTIG")
        self.assertEqual("SUPERCALIFRAGILISTICEXPIALIDOCIOUS",
                         self.kws.permute_message("PSLNOEVFADOVTAFAPQAENXLAVFARKEAKSP"))

    def test_2014_opgave_3a(self):
        self.kws.create_permutation_dict("LEO VROMAN")
        self.assertEqual(
            "KOM VANAVOND MET VERHALEN HOE DE OORLOG IS VERDWENEN, EN HERHAAL ZE HONDERD MALEN: ALLE MALEN ZAL IK WENEN",
            self.kws.permute_message(
                "DIG ULHLUIHV GRS URPNLFRH NIR VR IIPFIA BQ URPVWRHRH, RH NRPNLLF ZR NIHVRPV GLFRH: LFFR GLFRH ZLF BD WRHRH"))

    def test_2014_opgave_3b(self):
        self.kws.create_permutation_dict("LIBRIS LITERATUURPRIJS")
        self.assertEqual(
            "HET WAS HET WITTE UUR NA HET MIDDAGMAAL, DE BLANKE PAGINA WAAROP HOOGUIT IETS MET POTLOOD WORDT GEKRIEBELD IN GEHEIMSCHRIFT, IETS OM ONMIDDELLIJK WEER UIT TE GUMMEN ZODRA DE ROLLUIKEN OMHOOG WORDEN GETROKKEN EN HET LEVEN OPNIEUW ZWART OP WIT EEN AANVANG NEEMT MET BONNETJES, BESTELLINGEN EN BEZWAARSCHRIFTEN",
            self.kws.permute_message(
                "ASO WLN ASO WUOOS QQM FL ASO DURRLEDLLC, RS ICLFJS HLEUFL WLLMGH AGGEQUO USON DSO HGOCGGR WGMRO ESJMUSISCR UF ESASUDNBAMUTO, USON GD GFDURRSCCUPJ WSSM QUO OS EQDDSF ZGRML RS MGCCQUJSF GDAGGE WGMRSF ESOMGJJSF SF ASO CSVSF GHFUSQW ZWLMO GH WUO SSF LLFVLFE FSSDO DSO IGFFSOPSN, ISNOSCCUFESF SF ISZWLLMNBAMUTOSF"))

    def test_2014_opgave_3c(self):
        self.kws.create_permutation_dict("HUGO BRANDT CORSTIUS")
        self.assertEqual("OOK BEKEND ONDER PSEUDONIEMEN PIET GRIJS, STOKER, RAOUL CHAPKIS EN BATTUS",
                         self.kws.permute_message(
                             "FFC UBCBEO FEOBL JMBQOFEDBIBE JDBP ALDTM, MPFCBL, LHFQS GNHJCDM BE UHPPQM"))

    def test_2015_opgave_3c(self):
        self.kws.create_permutation_dict("einstein")
        self.assertEqual("LOGICA BRENGT JE VAN A NAAR B. VERBEELDING BRENGT JE OVERAL",
                         self.kws.permute_message("HLBDNE IPTKBR FT VEK E KEEP I. VTPITTHSDKB IPTKBR FT LVTPEH"))

    def test_2016_opgave_3b(self):
        """
        Titels van nummers van David Bowie (1947-2016), vercijferd met een substitutie.
        Voor een uitleg van een substitutie met sleutel (codewoord)
        Sleutel is het personage dat zingt:
        """
        self.kws.create_permutation_dict("Aladdin Sane")
        self.assertEqual("TIME", self.kws.permute_message("TCJN"))
        self.kws.create_permutation_dict("Ziggy Stardust")
        self.assertEqual("ZIGGY STARDUST", self.kws.permute_message("XDAAW MNZLYOMN"))
        self.kws.create_permutation_dict("Halloween Jack")
        self.assertEqual("BIG BROTHER", self.kws.permute_message("ACN AQISJWQ"))
        self.kws.create_permutation_dict("Jareth the Goblin King")
        self.assertEqual("AS THE WORLD FALLS DOWN", self.kws.permute_message("JQ SOT WDPNE HJNNQ EDWC"))
        self.kws.create_permutation_dict("Major Tom")
        self.assertEqual("SPACE ODDITY", self.kws.permute_message("QLMJR KOODSY"))
        self.kws.create_permutation_dict("Hunky Dory")
        self.assertEqual("KOOKS", self.kws.permute_message("CIICP"))
        self.kws.create_permutation_dict("Thin White Duke")
        self.assertEqual("STATION TO STATION", self.kws.permute_message("PQTQKJG QJ PQTQKJG"))

    def test_2016_opgave_3c(self):
        self.kws.create_permutation_dict("UMBERTO ECO")
        self.assertEqual("DE NAAM VAN DE ROOS", self.kws.permute_message("ER IUUH VUI ER NJJP"))
        self.kws.create_permutation_dict("HARPER LEE")
        self.assertEqual("SPAAR DE SPOTVOGEL(S)", self.kws.permute_message("SNHHQ PE SNMTVMBEI(S)"))
        self.kws.create_permutation_dict("BENOÎTE GROULT")
        self.assertEqual("ZOUT OP MIJN HUID", self.kws.permute_message("ZHSQ HJ DULF RSUO"))
        self.kws.create_permutation_dict("EDWARD ALBEE")
        self.assertEqual("WIE IS ER BANG VOOR VIRGINIA WOOLF?",
                         self.kws.permute_message("VFR FQ RP DEKB UMMP UFPBFKFE VMMIL?"))
        self.kws.create_permutation_dict("MIEKE TELKAMP")
        self.assertEqual("WAARHEEN, WAARVOOR", self.kws.permute_message("WMMQPTTH, WMMQVJJQ"))
        self.kws.create_permutation_dict("TOOTS THIELEMANS")
        self.assertEqual("BLUESETTE", self.kws.permute_message("OCUIQIRRI"))