for fn in fs: f = open(inpath+fn) text = f.read() f.close() text = ciphers.str_to_arr(text) outname = outpath+fn # Shift, n = 1 encoded = ciphers.arr_to_str(ciphers.shift_encode(text, 1)) fout = open(outname+'_shift_1.in', mode='w+') fout.write(encoded) fout.close() # Affine, a = 3, b = 4 encoded = ciphers.arr_to_str(ciphers.affine_encode(text,3,4)) fout = open(outname+'_affine_1.in', mode='w+') fout.write(encoded) fout.close() # Vigenere length known & unknown, key = apple key = ciphers.str_to_arr('apple') encoded = ciphers.arr_to_str(ciphers.vigenere_encode(text, key)) fout = open(outname+'_vig5_1.in', mode='w+') fout.write(encoded) fout.close() fout = open(outname+'_viggen_1.in', mode='w+') fout.write(encoded) fout.close()
def test_bad_alpha_4(self): try: ciphers.affine_encode("affine", -5, 17) self.assertTrue(False) except: self.assertTrue(True)
import sys from ciphers import arr_to_str, str_to_arr, affine_encode, affine_decode, encode v = sys.stdin.read().upper() i = v.index('\n') [a,b] = v[:i].split(' ') a = int(a) b = int(b) message = str_to_arr(v[i+1:-1]) encoded = arr_to_str(affine_encode(message, a, b)) print encoded decoded = arr_to_str(encode(str_to_arr(encoded), 1, affine_decode(str_to_arr(encoded)))) message = arr_to_str(message) if message == decoded: print "TRUE: 100% MATCH" else: matches = 0 total = 0 for i in range(len(encoded)): if "ABCDEFGHIJKLMNOPQRSTUVWXYZ".count(message[i]) == 1: if message[i] == decoded[i]: matches += 1 total += 1 print "FAlSE: " + str(float(matches)/total * 100) + "% MATCH" #print decoded
def test_simple_shift_right(self): self.assertEqual("uftunfpvu", ciphers.affine_encode("Test me OUT!", 1, 1))
def test_encrypt(self): self.assertEqual("cvvwpm", ciphers.affine_encode("affine", 9, 2))
def test_simple_shift_left(self): self.assertEqual("sdrsldnts", ciphers.affine_encode("Test me OUT!", 1, -1))
def test_no_shift(self): self.assertEqual("testmeoutsomejunkhere", ciphers.affine_encode("Test ME ouT! @# SOME 900 junkHere ... ()", 1, 0))
def test_bad_text(self): try: ciphers.affine_encode("@#$% .(", 9, 2) self.assertTrue(False) except: self.assertTrue(True)
def test_empty_text(self): try: ciphers.affine_encode("", 9, 2) self.assertTrue(False) except: self.assertTrue(True)
for fn in fs: f = open(inpath + fn) text = f.read() f.close() text = ciphers.str_to_arr(text) outname = outpath + fn # Shift, n = 1 encoded = ciphers.arr_to_str(ciphers.shift_encode(text, 1)) fout = open(outname + '_shift_1.in', mode='w+') fout.write(encoded) fout.close() # Affine, a = 3, b = 4 encoded = ciphers.arr_to_str(ciphers.affine_encode(text, 3, 4)) fout = open(outname + '_affine_1.in', mode='w+') fout.write(encoded) fout.close() # Vigenere length known & unknown, key = apple key = ciphers.str_to_arr('apple') encoded = ciphers.arr_to_str(ciphers.vigenere_encode(text, key)) fout = open(outname + '_vig5_1.in', mode='w+') fout.write(encoded) fout.close() fout = open(outname + '_viggen_1.in', mode='w+') fout.write(encoded) fout.close()