prog3r

Untitled

Apr 11th, 2026
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.63 KB | None | 0 0
  1. from collections import defaultdict
  2. import colorama
  3. colorama.init()
  4. s = """DBZMGAOIYSOPVFHOWKBWXZPJLVVRFGNBKIXDVUIMOPFQLVVPUDKPRVWOARLW
  5. DVLMWAWINZDAKBWMMRLWQIICGPAKYUCVZKMZARPSDTRVDZWEYGABYYEYMGYF
  6. YAFHLCMWLWLCVHLMMGYLDBZIFJNCYLOMIAJJCGMAIBVRLOPVFWOBVLKOPVUJ
  7. ZDVLQXWDGGIQEYFBTZMZDVRMMANZWAZVKFQGWEALZFKNZZZVCKVDVLQBWFXU
  8. CIEWWOPRMUJZIYKKWEXAIOIYHZIKYVGMKNWMOIIMKADUQWMWIMILZHLCMTCH
  9. CMINWSBRHVOPVSODTCMGHMKCEZASYDJKRNWYIKCFOMIPSGAFZKJUVGMGBZJD
  10. ZWWNZZVLGTZZFZSGXYUTZBJCFPAVNZZAVWSIJVZGPVUVQNKRHFDVXNZZKZJZ
  11. ZZKYPOIEXXMWDNZZQIMHVKZHYDVKYDGQXYFOOLYKNMJGSYMRMLJBYYFPUSYJ
  12. JNRFHCISYLN""".replace('\n', "")
  13. n = len(s)
  14. occ = defaultdict(list)
  15. for i in range(n):
  16.     for j in range(i+1, min(n, i+6)):
  17.         l = j-i+1
  18.         z = s[i:j+1]
  19.         occ[z].append((i, j))
  20. f = [(x, y) for x, y in occ.items() if len(y) > 3 and len(x) > 2]
  21. print(f)
  22. for pattern, occs in f:
  23.     for l, r in occs:
  24.         for l2, r2 in occs:
  25.             if l2>l:
  26.                 print(l2-l)
  27. # Seems like the size of the key is 5
  28. print(colorama.Fore.LIGHTBLACK_EX)
  29. print(*[s[i:i+5] for i in range(0, n, 5)], sep='\n')
  30. print(colorama.Fore.RESET)
  31. shift = [0] * 5
  32. for i in range(5):
  33.     cnt = defaultdict(int)
  34.     for j in range(i, n, 5):
  35.         cnt[s[j]] += 1
  36.         # print(s[j], end="")
  37.     # print()
  38.     chfreq = sorted([(y, x) for x, y in cnt.items()], reverse=True)
  39.     shift[i] = (ord(chfreq[0][1])-ord('E'))%26
  40. print("key =", *[chr(ord('A')+x) for x in shift])
  41. out = [s[i:i+5] for i in range(0, n, 5)]
  42. for j in range(0, n, 5):
  43.     for i in range(min(n-j, 5)):
  44.         print(chr((ord(s[j+i]) - ord('A') - shift[i]) % 26 + ord('A')), end = "")
  45.     # print()
Advertisement
Add Comment
Please, Sign In to add comment