예제 #1
0
 def test_encipher(self):
     # test odd length string
     keys = ('czbniwemuorkpdslqfxagthyv',
             'ohnuwkdbtiepyzxcsqamlgrvf',
             'pslqofaiymcnwtuhdxezbkgrv',
             'xqvlpnakrsewfcyhutdbgziom',
             'xbhpuvmiyesdnwlakcrgfzotq')
     plaintext = 'abcdefghiklmnopqrstuvwxyzABCDEFGHIKLMNOPQRSTUVWXY'
     ciphertext = ['finrmqtyzsfwiukfkryegoyniqnzkulhvbrqubmslkkvoyulny',
                   'qtskxlhdkdfcuhysgqztfuezavkqkplrwdeoqwhernadtuimze',
                   'fknhhybxagoiussokqucgueidmphxzibxfgsaupsyqqnzoxgie',
                   'sudowcxgvfporgxvsndtqfpeqwdyhceitgrvgsmllakbtqeqep',
                   'kxknvqcumcdechutawqpyspvfkhklmqaingdidthtgwfxespvp']
     for i, key in enumerate(keys):
         enc = Playfair(key).encipher(plaintext)
         self.assertEqual(enc.upper(), ciphertext[i].upper())
     # test even length string
     plaintext = 'aaaaaaaaajjjjjkkkkkllllmmmmnnnnffffooooossssoffffffe'
     key = 'tpaydcmhfoizwsuvxrbkelqgn'
     ciphertext = 'prprprprtwzvzvvrvrxnplpzzlollkgombocmkmkzbzbcombmbcg'
     enc = Playfair(key).encipher(plaintext)
     self.assertEqual(enc.upper(), ciphertext.upper())
예제 #2
0
 def test_decipher(self):
     ciphertext = 'abcdefghiklmnopqrstuvwxyzABCDEFGHIKLMNOPQRSTUVWXYZ'
     keys = ('lsfdpxwirnyveamoqgkchbtzu',
             'dytqplngirabskxcvoemzufwh',
             'ecsyinfmkpdrtuvgwqzbolaxh',
             'xquwfstzgeipboalykdnvrmch',
             'bxuthifmzrweasdovlpgcqnyk')
     plaintext = ['vzkpitotrgpyxcscwdbzwslxkruqfatetxodnpclkwfbbmxnah',
                  'xaazowrfqircgvqtgxyfeubpclavqcotwraivrmtpigfvbhkdu',
                  'hqercnboypafegmbtcrtrbzxqxwinonwbhfxfphnwtamtuzlxu',
                  'opdofhecblkvdatrvtzqcxqlebomngwevaynhkbiryesxmufkt',
                  'wukwfxdkrcauclvyzduxoetqmscoswrvbrngulglkfzyxlebpt']
     for i, key in enumerate(keys):
         dec = Playfair(key).decipher(ciphertext)
         self.assertEqual(dec.upper(), plaintext[i].upper())