1
1
from file_utils import remove_accents
2
2
3
3
4
+ ALPHABET = ('a' , 'b' , 'c' , 'd' , 'e' , 'f' ,
5
+ 'g' , 'h' , 'i' , 'j' , 'k' , 'l' , 'm' ,
6
+ 'n' , 'o' , 'p' , 'q' , 'r' , 's' , 't' ,
7
+ 'u' , 'v' , 'w' , 'x' , 'y' , 'z' )
8
+
9
+
4
10
def encrypt (original_message , key ):
5
11
'''
6
12
Encrypts a message using the caesar cypher
7
-
8
13
:params original_message, key
9
14
:returns encrypted_message
10
15
'''
11
16
12
- alphabet = ('a' , 'b' , 'c' , 'd' , 'e' , 'f' ,
13
- 'g' , 'h' , 'i' , 'j' , 'k' , 'l' , 'm' ,
14
- 'n' , 'o' , 'p' , 'q' , 'r' , 's' , 't' ,
15
- 'u' , 'v' , 'w' , 'x' , 'y' , 'z' )
16
-
17
17
encrypted_message = ''
18
18
19
19
if type (key ) == str :
20
- key = alphabet .index (key ) + 1
20
+ key = ALPHABET .index (key ) + 1
21
21
22
22
# Encrypts the original message then stores in the return variable
23
23
for letter in remove_accents (original_message .lower ()):
24
- encrypted_letter = ''
25
- if letter not in alphabet :
26
- encrypted_letter = letter
24
+ if letter in ALPHABET :
25
+ index = ALPHABET .index (letter )
26
+ index += key
27
+
28
+ if index >= len (ALPHABET ):
29
+ index -= len (ALPHABET )
30
+
31
+ encrypted_message += ALPHABET [index ]
27
32
else :
28
- letter_index = alphabet .index (letter )
29
- if letter not in alphabet :
30
- encrypted_letter = letter
31
- elif letter_index + key >= len (alphabet ):
32
- encrypted_letter = \
33
- alphabet [letter_index + key - len (alphabet )]
34
- else :
35
- encrypted_letter = alphabet [letter_index + key ]
36
- encrypted_message += encrypted_letter
33
+ encrypted_message += letter
37
34
38
35
return encrypted_message
36
+
37
+
38
+ def decrypt (encrypted_message , key ):
39
+
40
+ '''
41
+ Decrypts a message using the caesar cypher
42
+ :params encrypted_message, key
43
+ :returns translated
44
+ '''
45
+
46
+ translated = ''
47
+
48
+ if type (key ) == str :
49
+ key = ALPHABET .index (key ) + 1
50
+
51
+ for letter in remove_accents (encrypted_message .lower ()):
52
+ if letter in ALPHABET :
53
+ index = ALPHABET .index (letter )
54
+ index -= key
55
+
56
+ if index < 0 :
57
+ index += len (ALPHABET )
58
+
59
+ translated += ALPHABET [index ]
60
+
61
+ else :
62
+ translated += letter
63
+
64
+ return translated
0 commit comments