fork download
  1. def char2idx(ch):
  2. return ord(ch)-ord('A')
  3. def idx2char(idx):
  4. return chr(idx+ord('A'))
  5. def dfs(i,lim):
  6. global ans,key
  7. for j in ans[i]:
  8. key[i]=j
  9. if (i==lim-1):
  10. ct='BELOSZ'
  11. print('key = ',end='')
  12. for k in key:
  13. print(idx2char(k),end='')
  14. print()
  15. print('Plaintext = ',end='')
  16. for k in range(len(ct)):
  17. print(idx2char((char2idx(ct[k])-key[k%lim])%26),end='')
  18. print()
  19. else:
  20. dfs(i+1,lim)
  21.  
  22. for lim in range(1,10,1):
  23. print("key len = ",lim)
  24. met='SXULW GNXIO WRZJG OFLCM RHEFZ ALGSP DXBLM PWIQT XJGLA RIYRI BLPPC HMXMG CTZDL CLKRU YMYSJ TWUTX ZCMRH EFZAL OTMNL BLULV MCQMG CTZDL CPTBI AVPML NVRJN SSXWT XJGLA RIQPE FUGVP PGRLG OMDKW RSIFK TZYRM QHNXD UOWQT XJGLA RIQAV VTZVP LMAIV ZPHCX FPAVT MLBSD OIFVT PBACS EQKOL BCRSM AMULP SPPYF CXOKH LZXUO GNLID ZVRAL DOACC INREN YMLRH VXXJD XMSIN BXUGI UPVRG ESQSG YKQOK LMXRS IBZAL BAYJM AYAVB XRSIC KKPYH ULWFU YHBPG VIGNX WBIQP RGVXY SSBEL NZLVW IMQMG YGVSW GPWGG NARSP TXVKL PXWGD XRJHU SXQMI VTZYO GCTZR JYVBK MZHBX YVBIT TPVTM OOWSA IERTA SZCOI TXXLY JAZQC GKPCS LZRYE MOOVC HIEKT RSREH MGNTS KVEPN NCTUN EOFIR TPPDL YAPNO GMKGC ZRGNX ARVMY IBLXU QPYYH GNXYO ACCIN QBUQA GELNR TYQIH LANTW HAYCP RJOMO KJYTV SGVLY RRSIG NKVXI MQJEG GJOML MSGNV VERRC MRYBA GEQNP RGKLB XFLRP XRZDE JESGN XSYVB DSSZA LCXYE ICXXZ OVTPW BLEVK ZCDEA JYPCL CDXUG MARML RWVTZ LXIPL PJKKL CIREP RJYVB ITPVV ZPHCX FPCRG KVPSS CPBXW VXIRS SHYTU NWCGI ANNUN VCOEA JLLFI LECSO OLCTG CMGAT SBITP PNZBV XWUPV RIHUM IBPHG UXUQP YYHNZ MOKXD LZBAK LNTCC MBJTZ KXRSM FSKZC SSELP UMARE BCIPK GAVCY EXNOG LNLCC JVBXH XHRHI AZBLD LZWIF YXKLM PELQG RVPAF ZQNVK VZLCE MPVKP FERPM AZALV MDPKH GKKCL YOLRX TSNIB ELRYN IVMKP ECVXH BELNI OETUX SSYGV TZARE RLVEG GNOQC YXFCX YOQYO ISUKA RIQHE YRHDS REFTB LEVXH MYEAJ PLCXK TRFZX YOZCY XUKVV MOJLR RMAVC XFLHO KXUVE GOSAR RHBSS YHQUS LXSDJ INXLH PXCCV NVIPX KMFXV ZLTOW QLKRY TZDLC DTVXB ACSDE LVYOL BCWPE ERTZD TYDXF AILBR YEYEG ESIHC QMPOX UDMLZ VVMBU KPGEC EGIWO HMFXG NXPBW KPVRS XZCEE PWVTM OOIYC XURRV BHCCS SKOLX XQSEQ RTAOP WNSZK MVDLC PRTRB ZRGPZ AAGGK ZIMAP RLKVW EAZRT XXZCS DMVVZ BZRWS MNRIM ZSRYX IEOVH GLGNL FZKHX KCESE KEHDI FLZRV KVFIB XSEKB TZSPE EAZMV DLCSY ZGGYK GCELN TTUIG MXQHT BJKXG ZRFEX ABIAP MIKWA RVMFK UGGFY JRSIP NBJUI LDSSZ ALMSA VPNTX IBSMO'
  25. ct=''.join(met.strip().split())
  26. ans=[]
  27. for i in range(lim):
  28. tmp,res=[],[]
  29. for j in range(26):
  30. freq=[0]*26
  31. flag=False
  32. for k in range(i,len(ct),lim):
  33. tmp.append((char2idx(ct[k])-j)%26)
  34. freq[tmp[-1]]+=1
  35. mx=freq[0]
  36. for k in range(26):
  37. if (mx<freq[k]):
  38. mx=freq[k]
  39. if (mx==freq[4]):
  40. res.append(j)
  41. ans.append(res)
  42. key=[0]*lim
  43. dfs(0,lim)
  44. print("========================================================================")
Success #stdin #stdout 0.29s 9752KB
stdin
Standard input is empty
stdout
key len =  1
key = H
Plaintext = UXEHLS
========================================================================
key len =  2
key = HN
Plaintext = UREBLM
========================================================================
key len =  3
key = KTR
Plaintext = RLUEZI
========================================================================
key len =  4
key = OEHI
Plaintext = NAEGEV
key = OLHI
Plaintext = NTEGEO
key = TEHI
Plaintext = IAEGZV
key = TLHI
Plaintext = ITEGZO
========================================================================
key len =  5
key = NTNHC
Plaintext = OLYHQM
========================================================================
key len =  6
key = YTRKEN
Plaintext = DLUEOM
========================================================================
key len =  7
key = HTNHRHN
Plaintext = ULYHBS
========================================================================
key len =  8
key = CHHNLLCI
Plaintext = ZXEBHO
key = CHHNLLCT
Plaintext = ZXEBHO
key = CHHNLLHI
Plaintext = ZXEBHO
key = CHHNLLHT
Plaintext = ZXEBHO
key = CHHNLLNI
Plaintext = ZXEBHO
key = CHHNLLNT
Plaintext = ZXEBHO
key = CHHNLLRI
Plaintext = ZXEBHO
key = CHHNLLRT
Plaintext = ZXEBHO
key = CHHNLLUI
Plaintext = ZXEBHO
key = CHHNLLUT
Plaintext = ZXEBHO
key = CHHNLLYI
Plaintext = ZXEBHO
key = CHHNLLYT
Plaintext = ZXEBHO
key = THHNLLCI
Plaintext = IXEBHO
key = THHNLLCT
Plaintext = IXEBHO
key = THHNLLHI
Plaintext = IXEBHO
key = THHNLLHT
Plaintext = IXEBHO
key = THHNLLNI
Plaintext = IXEBHO
key = THHNLLNT
Plaintext = IXEBHO
key = THHNLLRI
Plaintext = IXEBHO
key = THHNLLRT
Plaintext = IXEBHO
key = THHNLLUI
Plaintext = IXEBHO
key = THHNLLUT
Plaintext = IXEBHO
key = THHNLLYI
Plaintext = IXEBHO
key = THHNLLYT
Plaintext = IXEBHO
========================================================================
key len =  9
key = XEYLENCTH
Plaintext = EANDOM
========================================================================