-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmorse_cipher.py
More file actions
135 lines (120 loc) · 3.77 KB
/
Copy pathmorse_cipher.py
File metadata and controls
135 lines (120 loc) · 3.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
from random import choice # Mohammed Abdul Raqeeb
import string
# Define Morse code dictionary
morse_code_dict = {
'A': '.-', # A
'B': '-...', # B
'C': '-.-.', # C
'D': '-..', # D
'E': '.', # E
'F': '..-.', # F
'G': '--.', # G
'H': '....', # H
'I': '..', # I
'J': '.---', # J
'K': '-.-', # K
'L': '.-..', # L
'M': '--', # M
'N': '-.', # N
'O': '---', # O
'P': '.--.', # P
'Q': '--.-', # Q
'R': '.-.', # R
'S': '...', # S
'T': '-', # T
'U': '..-', # U
'V': '...-', # V
'W': '.--', # W
'X': '-..-', # X
'Y': '-.--', # Y
'Z': '--..', # Z
'1': '.----', # 1
'2': '..---', # 2
'3': '...--', # 3
'4': '....-', # 4
'5': '.....', # 5
'6': '-....', # 6
'7': '--...', # 7
'8': '---..', # 8
'9': '----.', # 9
'0': '-----', # 0
'.': '.-.-.-', # Period
',': '--..--', # Comma
'?': '..--..', # Question mark
"'": '.----.', # Apostrophe
'!': '-.-.--', # Exclamation mark
'/': '-..-.', # Slash
'(': '-.--.', # Left parenthesis
')': '-.--.-', # Right parenthesis
'&': '.-...', # Ampersand
':': '---...', # Colon
';': '-.-.-.', # Semicolon
'=': '-...-', # Equal sign
'-': '-....-', # Hyphen
'_': '..--.-', # Underscore
'"': '.-..-.', # Quotation marks
'$': '...-..-', # Dollar sign
'@': '.--.-.', # At symbol
'%': '...-.', # Percent sign
'|': '.-..-' # Vertical bar
}
# Function to translate text to Morse code
def text_to_morse(text):
morse_code = ''
for char in text.upper():
if char in morse_code_dict:
morse_code += morse_code_dict[char] + ' '
elif char == ' ':
morse_code += '/ ' # Use slash for space in Morse code
else:
morse_code += char + ' ' # Take non-alphanumeric characters directly in Morse code
return morse_code.strip() # Strip trailing space
# Function to translate Morse code to Obfuscated_code
def obfuscate_morse_code(morse_code):
obfuscated_code = ''
for char in morse_code:
if char == '.':
obfuscated_code += choice(string.ascii_letters)
elif char == '-':
obfuscated_code += choice(string.digits)
elif char == '/':
obfuscated_code += '*'
else:
obfuscated_code += char
return obfuscated_code
def deobfuscate_obfuscated_code(obfuscated_code):
morse_code = ''
for char in obfuscated_code:
if char.isalpha():
morse_code += "."
elif char.isdigit():
morse_code += "-"
elif char == '*':
morse_code += '/'
else:
morse_code += char
return morse_code
# Function to translate Morse code to text
def morse_to_text(morse_code):
text = ''
morse_code = morse_code.split(' ')
for code in morse_code:
if code in morse_code_dict.values():
for char, morse in morse_code_dict.items():
if morse == code:
text += char
break
elif code == '/':
text += ' ' # Add space for slash in Morse code
else:
text += code # Take Morse code directly if not found in dictionary
return text
text = input("Enter text: ")
morse = text_to_morse(text)
print("Morse Code:", morse)
obfuscated_code = obfuscate_morse_code(morse)
print("Obfuscated Code:", obfuscated_code)
deobfuscated_code = deobfuscate_obfuscated_code(obfuscated_code)
print("Deobfuscated Code:", deobfuscated_code)
decoded_text = morse_to_text(deobfuscated_code)
print("Decoded Text:", decoded_text)