Advertisement
Keksike

шифр гаммирования, все писать слитно

Mar 22nd, 2022
3,007
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.73 KB | None | 0 0
  1. alf = {'а':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}
  2.  
  3. def get_key(alf, value):
  4.   for k, v in alf.items():
  5.     if v == value:
  6.       return k
  7.  
  8. def index(list, alf):
  9.   index = alf.get(list[i])
  10. #  print(list[i], "- Буква,", index, "- Номер буквы")
  11.   return index
  12.  
  13. def res(a,b):
  14.   res_message = ""
  15.   for i in range(len(a)):
  16.     res_message += chr(ord(a[i]) ^ ord(b[i]))
  17.   return res_message
  18.  
  19. def correct(index):
  20.   if index > 32:
  21.     index -= 32
  22.   return index
  23.  
  24. message = input("Enter message:\n")
  25. list_message = []
  26.  
  27. message_g = input("Enter gamma:\n")
  28. list_messagen = []
  29.  
  30. list_cod = []
  31.  
  32. for c in message: # идем по строке
  33.     list_message.append(c) # добавляем буквы в список
  34. #print(list_message, "\n")
  35.  
  36. for c in message_g: # идем по строке
  37.     list_messagen.append(c) # добавляем буквы в список
  38. #print(list_messagen, "\n")
  39.  
  40. for i in range(len(list_message)):
  41.   index_a = index(list_message, alf)
  42.   index_b = index(list_messagen, alf)
  43.   index_m = index_a + index_b
  44.  
  45.   index_m = correct(index_m)
  46. #  print(index_m, "- Номер буквы(", i, ") в конечном сообещении")
  47.  
  48.   list_cod.append(get_key(alf, index_m))
  49.   message_m = "".join(list_cod)
  50.  
  51. print(message, "- Начально сообщение")
  52. print(message_g, "- Гамма сообщение")
  53. print(message_m, "- Зашифрованное сообщение")
  54.  
  55. #print("Decoded message:", res(des(message, gamma, alf), gamma, alf))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement