コード例 #1
0
def result_page():
    """Returns result page with encoded or decoded
    message"""
    keyword = request.form['keyword']
    choice = request.form['choice']
    message = request.form['message']
    cipher = VigenereCipher(keyword)
    if choice == 'encode':
        result = cipher.encode(message)
    else:
        result = cipher.decode(message)
    if result is None:
        return render_template('exception.html')
    return render_template('result.html', result=result)
コード例 #2
0
def test_encode():
    cipher = VigenereCipher('TRAIN')
    encoded = cipher.encode('ENCODEDINPYTHON')
    assert encoded == 'XECWQXUIVCRKHWA'
コード例 #3
0
def cipher():
    return VigenereCipher("TRAIN")
コード例 #4
0
 def test_decode(self):
     cipher = VigenereCipher("TRAIN")
     decoded = cipher.decode("XECWQXUIVCRKHWA")
     self.assertTrue("ENCODEDINPYTHON" == decoded)
コード例 #5
0
 def test_encode_lowercase(self):
     cipher = VigenereCipher("TRain")
     encoded = cipher.encode("encoded in Python")
     self.assertTrue(encoded == "XECWQXUIVCRKHWA")
コード例 #6
0
 def test_encode_character(self):
     cipher = VigenereCipher("TRAIN")
     encoded = cipher.encode("E")
     self.assertTrue(encoded == "X")
コード例 #7
0
ファイル: test_vigenere_cipher.py プロジェクト: maxymkuz/cs_2
 def test_encode(self):
     cipher = VigenereCipher("TRAIN")
     encoded = cipher.encode("ENCODEDINPYTHON")
     self.assertEqual(encoded, "XECWQXUIVCRKHWA")
コード例 #8
0
def test_encode_character():
    cipher = VigenereCipher('TRAIN')
    encoded = cipher.encode('E')
    assert encoded == 'X'
コード例 #9
0
def test_encode_lowercase(valid_cipher):
    cipher = VigenereCipher("TRain")
    assert cipher.encode("encoded in Python") == "XECWQXUIVCRKHWA"
コード例 #10
0
def test_encode():
    chip = VigenereCipher("TRAIN")
    encoded = chip.encode("ENCODED IN PYTHON")
    assert "XECWQXUIVCRKHWA" == encoded
コード例 #11
0
def test_extend_keyword():
    vigenere = VigenereCipher("TRAIN")
    extended = vigenere.extend_keyword(16)
    assert "TRAINTRAINTRAINT" == extended
コード例 #12
0
def test_encode_lowercase():
    chip = VigenereCipher("TRAIN")
    encoded = chip.encode("encoded in python")
    assert "XECWQXUIVCRKHWA" == encoded
コード例 #13
0
def test_encode_character():
    chip = VigenereCipher("TRAIN")
    encoded = chip.encode("E")
    assert "X" == encoded
コード例 #14
0
from unittest import TestCase
from vigenere_cipher import VigenereCipher
ex = VigenereCipher('csucu')


class TestVigenereCipher(TestCase):
    def test_vigenere_cipher(self):
        self.assertEquals('A', ex.combine_character('h', 'a'), "fail")
        self.assertEquals('E', ex.combine_character('P', 'p'), "fail")
        self.assertEquals('Z', ex.combine_character('Y', 'B'), "fail")
        self.assertEquals(None, ex.combine_character('-', 'd'), "fail")
        self.assertEquals('C', ex.separate_character('a', 'y'), "fail")
        self.assertEquals(None, ex.separate_character(',', 'O'), "fail")
        self.assertEquals('H', ex.separate_character('L', 'e'), "fail")
        self.assertEquals(None, ex.separate_character('s', '!'), "fail")
        self.assertEquals('CSUCUCSUCU', ex.extend_keyword(10), "fail")
        self.assertEquals('', ex.extend_keyword(0), "fail")
        self.assertEquals('SSXYOLQGLIYBNMRGKALOTMXQORG',
                          ex.decode('ukrainiancatholicuniversity'), "fail")
        self.assertEquals('WCLCCPAUPWCLBQFKUOPCXWLUCVQ',
                          ex.encode('ukrainiancatholicuniversity'), "fail")
        self.assertEquals('', ex.encode(''), "fail")
        self.assertEquals('', ex.decode(''), "fail")
コード例 #15
0
def test_extend_keyword():
    cipher = VigenereCipher('TRAIN')
    extended = cipher.extend_keyword(16)
    assert extended == 'TRAINTRAINTRAINT'
コード例 #16
0
def test_decode():
    cipher = VigenereCipher('TRAIN')
    decode = cipher.decode('XECWQXUIVCRKHWA')
    assert decode == 'ENCODEDINPYTHON'
コード例 #17
0
def pytest_funcarg__valid_cipher(request):
    return VigenereCipher("TRAIN")
コード例 #18
0
 def test_encode_character():
     cipher = VigenereCipher("TRAIN")
     encoded = cipher.encode("E")
     assert encoded == "X"
コード例 #19
0
 def test_encode_lowercase():
     cipher = VigenereCipher("TRain")
     encoded = cipher.encode("encoded in Python")
     assert encoded == "XECWQXUIVCRKHWA"
コード例 #20
0
 def test_encode_2(self):
     cipher = VigenereCipher("LeaRNinG")
     encoded = cipher.encode("LeaRNINGpyThON")
     assert encoded == "WIAIAQAMACTYBV"
コード例 #21
0
 def test_extend_keyword():
     cipher = VigenereCipher("TRAIN")
     extended = cipher.extend_keyword(16)
     assert extended == "TRAINTRAINTRAINT"
コード例 #22
0
 def test_encode_spaces(self):
     cipher = VigenereCipher("TRAIN")
     encoded = cipher.encode("ENCODED IN PYTHON")
     self.assertTrue(encoded == "XECWQXUIVCRKHWA")
コード例 #23
0
 def test_decode():
     cipher = VigenereCipher("TRAIN")
     decoded = cipher.decode("XECWQXUIVCRKHWA")
     assert decoded == "ENCODEDINPYTHON"
コード例 #24
0
 def test_extend_keyword(self):
     cipher = VigenereCipher("TRAIN")
     extended = cipher.extend_keyword(16)
     self.assertTrue(extended == "TRAINTRAINTRAINT")
コード例 #25
0
def test_encode_lowercase():
    cipher = VigenereCipher('TRain')
    encoded = cipher.encode('encoded in Python')
    assert encoded == 'XECWQXUIVCRKHWA'
コード例 #26
0
 def test_encode_1(self):
     cipher = VigenereCipher("TRAIN")
     encoded = cipher.encode("ENCODEDINPYTHON")
     assert encoded == "XECWQXUIVCRKHWA"
コード例 #27
0
    
text = ''.join([char for char in text.lower() if char in 'abcdefghijklmnopqrstuvwxyz'])

def build_freq(text):
    freq = {char: 0 for char in 'abcdefghijklmnopqrstuvwxyz'}
    for char in text:
        if char in freq:
            freq[char] += 1
    return freq

def plot(text, max_freq_plaintext, label, marker):
    freq = build_freq(text)
    rel_freq = {char: freq[char]/max_freq_plaintext for char in freq}
    plt.plot(sorted(rel_freq.values(), reverse=True), label=label, marker=marker)

ccipher = CaeserCipher()
vcipher = VigenereCipher("cryptography")
pcipher = PlayfairCipher("cryptography")
dcipher = DES()

max_freq_plaintext = max(build_freq(text).values())
plot(text, max_freq_plaintext, 'Plaintext', '>')
plot(ccipher.encrypt(text), max_freq_plaintext, 'Caeser Cipher', '<')
plot(vcipher.encrypt(text), max_freq_plaintext, 'Vigenere Cipher', '+')
plot(pcipher.encrypt(text), max_freq_plaintext, 'Playfair Cipher', 'x')
plot(dcipher.encrypt("monarchy", text), max_freq_plaintext, 'DES', 'o')
plt.xlabel('Frequency ranked letters')
plt.ylabel('Relative frequency')
plt.title("Simmon's Experiment")
plt.legend()
plt.show()