Advertisement
Guest User

Untitled

a guest
Mar 9th, 2020
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.80 KB | None | 0 0
  1. import sys
  2.  
  3.  
  4. def cipher(text, num):
  5.     a1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
  6.           'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
  7.  
  8.     a2 = ['а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л',
  9.           'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш',
  10.           'щ', 'ь', 'ы', 'ъ', 'э', 'ю', 'я']
  11.  
  12.     res = []
  13.     a = []
  14.     for i in text:
  15.         if i.lower() not in a1 + a2:
  16.             res.append(i)
  17.             continue
  18.  
  19.         a = a1 if i.lower() in a1 else a2
  20.         x = a.index(i.lower()) + num % len(a)
  21.         y = x if x < len(a) else x - len(a)
  22.         z = a[y] if i == i.lower() else a[y].upper()
  23.         res.append(z)
  24.  
  25.     return "".join(res)
  26.  
  27.  
  28. try:
  29.     with open(sys.argv[3], 'r', encoding='utf-8') as f:
  30.         if sys.argv[1] == '-s':
  31.             x = cipher(f.read(), int(sys.argv[2]))
  32.             print(x)
  33.             with open(sys.argv[3] + '.sif', 'w', encoding='utf-8') as f2:
  34.                 f2.write(x)
  35.         elif sys.argv[1] == '-d':
  36.             print(cipher(f.read(), int(sys.argv[2]) * -1))
  37. except IOError:
  38.     pass
  39.  
  40. # Использование
  41. # сохранить код в любой .py файл например cipher.py
  42.  
  43. # пример текстового файла
  44. # text.txt
  45. # tHe quIck brown Fox juMps over a lazy Dog
  46. # одНажды в студЁную зимнюю пОру я Из лесу Вышел был сильНый мороз
  47.  
  48. # кодирование (из командной строки cmd.exe)
  49. # cipher.py -s 40 text.txt
  50. # Параметры:
  51. # -s - значит шифрование
  52. # 40 - ключ (в данном случае сдвиг, так как используется шифр цезаря)
  53. # text.txt - текстовый файл с входными данными
  54.  
  55. # в консоль выведет результат
  56. # hVs eiWqy pfckb Tcl xiAdg cjsf o zonm Rcu
  57. # хкФжнкв и шщькМфье опуфее цХчь ё По тлшь Ивялт звт шптбФвр ухчхо
  58.  
  59. # а также результат сохранится в файл text.txt.sif
  60.  
  61. # декодирование (из командной строки cmd.exe)
  62. # cipher.py -d 40 text.txt.sif
  63. # Параметры:
  64. # -d - значит дешифрование
  65. # 40 - ключ (в данном случае сдвиг, так как используется шифр цезаря)
  66. # text.txt.sif - зашифрованый текстовый файл
  67.  
  68. # в консоль выведет результат (расшифрованный текст из файла)
  69. # tHe quIck brown Fox juMps over a lazy Dog
  70. # одНажды в студЕную зимнюю пОру я Из лесу Вышел был сильНый мороз
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement