import binascii
import codecs
from Crypto.Cipher import AES, DES
def encode_ascii(text):
return ' '.join(str(ord(char)) for char in text)
def encode_unicode(text):
return ' '.join(hex(ord(char)) for char in text)
def encode_base64(text):
return base64.b64encode(text.encode()).decode()
def encode_binary(text):
return ' '.join(format(ord(char), '08b') for char in text)
def encode_morse_code(text):
morse_code_dict = {'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.', 'G': '--.', 'H': '....', 'I': '..', 'J': '.---',
'K': '-.-', 'L': '.-..', 'M': '--', 'N': '-.', 'O': '---', 'P': '.--.', 'Q': '--.-', 'R': '.-.', 'S': '...', 'T': '-', 'U': '..-',
'V': '...-', 'W': '.--', 'X': '-..-', 'Y': '-.--', 'Z': '--..', ' ': '|'}
return ' '.join(morse_code_dict.get(char.upper(), char) for char in text)
def encode_utf8(text):
return codecs.encode(text, 'utf-8')
def encode_caesar_cipher(text, shift):
result = ''
for char in text:
if char.isalpha():
ascii_offset = ord('A') if char.isupper() else ord('a')
result += chr((ord(char) - ascii_offset + shift) % 26 + ascii_offset)
else:
result += char
return result
def encode_aes(text, key):
cipher = AES.new(key.encode(), AES.MODE_ECB)
return cipher.encrypt(text.encode()).hex()
def encode_des(text, key):
cipher = DES.new(key.encode(), DES.MODE_ECB)
return cipher.encrypt(text.encode()).hex()
def encode_all(text):
encodings = {
"ASCII": encode_ascii(text),
"Unicode": encode_unicode(text),
"Base64": encode_base64(text),
"Binary": encode_binary(text),
"Morse Code": encode_morse_code(text),
"UTF-8": encode_utf8(text),
# Add more encodings here if needed
}
return encodings
def select_encoding_type():
print("\nSelect encoding type:")
print("1. ASCII")
print("2. Unicode")
print("3. Base64")
print("4. Binary")
print("5. Morse Code")
print("6. UTF-8")
print("7. Caesar Cipher")
print("8. AES")
print("9. DES")
print("0. Quit")
choice = input("Enter the corresponding number (or 'q' to quit): ")
return choice
def main():
while True:
text_to_encode = input("\nEnter the text to encode (or 'q' to quit): ")
if text_to_encode.lower() == 'q':
break
encodings = encode_all(text_to_encode)
for encoding, encoded_text in encodings.items():
print(f"{encoding}: {encoded_text}")
if __name__ == "__main__":
main()
Comments
Post a Comment