File tree 1 file changed +39
-0
lines changed
1 file changed +39
-0
lines changed Original file line number Diff line number Diff line change
1
+ text = "mrttaqrhknsw ih puggrur"
2
+ custom_key = "happycoding"
3
+
4
+
5
+ def vigenere (message , key , direction = 1 ):
6
+ key_index = 0
7
+ alphabet = "abcdefghijklmnopqrstuvwxyz"
8
+ final_message = ""
9
+
10
+ for char in message .lower ():
11
+ # Append any non-letter character to the message
12
+ if not char .isalpha ():
13
+ final_message += char
14
+ else :
15
+ # Find the right key character to encode/decode
16
+ key_char = key [key_index % len (key )]
17
+ key_index += 1
18
+
19
+ # Define the offset and the encrypted/decrypted letter
20
+ offset = alphabet .index (key_char )
21
+ index = alphabet .find (char )
22
+ new_index = (index + offset * direction ) % len (alphabet )
23
+ final_message += alphabet [new_index ]
24
+
25
+ return final_message
26
+
27
+
28
+ def encrypt (message , key ):
29
+ return vigenere (message , key )
30
+
31
+
32
+ def decrypt (message , key ):
33
+ return vigenere (message , key , - 1 )
34
+
35
+
36
+ print (f"\n Encrypted text: { text } " )
37
+ print (f"Key: { custom_key } " )
38
+ decryption = decrypt (text , custom_key )
39
+ print (f"\n Decrypted text: { decryption } \n " )
You can’t perform that action at this time.
0 commit comments