İlk olarak, kullanıcının girdiği metni büyük harflere dönüştürmek ve ikili gruplara ayırmak için bir fonksiyon oluşturalım. Ardından, bu ikili grupları matematiksel işlemlere tabi tutabileceğimiz bir fonksiyon yazalım. İşte bir örnek:
`def convert_text_to_binary_groups(text):
text = text.upper() # Metni büyük harflere dönüştür
length = len(text)
binary_groups = []
# Metni ikili gruplara ayır
for i in range(0, length, 2):
if i + 1 < length:
binary_groups.append(text[i] + text[i+1])
else:
# Son ikili grup oluşamadığı durumda son karakteri "0" ile birleştir
binary_groups.append(text[i] + "0")
return binary_groups
def perform_mathematical_operations(binary_groups):
value_table = {
"A": 0, "B": 1, "C": 2, "D": 3, "E": 4, "F": 5, "G": 6, "H": 7, "I": 8, "J": 9, "K": 10,
"L": 11, "M": 12, "N": 13, "O": 14, "P": 15, "Q": 16, "R": 17, "S": 18, "T": 19, "U": 20,
"V": 21, "W": 22, "X": 23, "Y": 24, "Z": 25, "0": 26, "1": 27, "2": 28, "3": 29, "4": 30,
"5": 31, "6": 32, "7": 33, "8": 34, "9": 35, ".": 36, ",": 37, "?": 38, "!": 39, "-": 40,
"+": 41, "*": 42, " ": 0 # Boşluk karakteri için değer eklendi
}
result = []
for group in binary_groups:
# İkili grupların sayısal karşılıklarını al
values = [value_table[char] for char in group]
# Matematiksel işlemleri uygula (örnek olarak toplama)
result_value = (values[0] + values[1]) % 43
# Sayısal değerlerin harf karşılıklarını bul
for key, value in value_table.items():
if value == result_value:
result.append(key)
break
return "".join(result)
Kullanıcıdan metni al
plaintext = input("Şifrelenecek metni girin: ")
İkili gruplara ayır
binary_groups = convert_text_to_binary_groups(plaintext)
Matematiksel işlemleri uygula
encrypted_text = perform_mathematical_operations(binary_groups)
Şifrelenmiş metni yazdır
print("Şifrelenmiş metin:", encrypted_text)
`
Bu örnek kod, kullanıcının girdiği metni büyük harflere dönüştürür ve ikili gruplara ayırır. Daha sonra her ikili grup için matematiksel işlemleri uygular ve sonuçları şifrelenmiş metin olarak verir. Örneğin, "merhaba" metni için şifrelenmiş metin "+İB-Ç." olarak çıktı verir.
Matematiksel işlemleri farklı bir şekilde uygulamak isterseniz perform_mathematical_operations fonksiyonunu değiştirebilirsiniz. İşlem mantığınıza göre istediğiniz işlemleri bu fonksiyon içinde yapabilirsiniz.