Guest User

Untitled

a guest
Mar 9th, 2020
123
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. # одНажды в студЕную зимнюю пОру я Из лесу Вышел был сильНый мороз
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×