Nelze dešifrovat ADFGVX šifra, pokud klič má duplicitní znaky – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nelze dešifrovat ADFGVX šifra, pokud klič má duplicitní znaky – Python – Fórum – Programujte.comNelze dešifrovat ADFGVX šifra, pokud klič má duplicitní znaky – Python – Fórum – Programujte.com

 

Paragoon20
Newbie
12. 11. 2023   #1
-
0
-

Dobrý den, potřeboval bych nutně pomoct opravit dešifrovaní, aby fungovalo pro klíč ktery obsahuje i duplicitní znaky. Dešifrování funguje pokud klíč neobsahuje duplicitní znaky


def decrypt_ADFGVX(self, cod, key):
   """ Decrypt with the ADFGVX cipher. Does not depend on spacing of encoded text """
   matrices = list('ADFGVX')
   chars = [c for c in cod if c in matrices]
   key = list(key.upper())
   sortedkey = sorted(key)
   order = [key.index(ch) for ch in sortedkey]
   originalorder = [sortedkey.index(ch) for ch in key]
   base, extra = divmod(len(chars), len(key))
   strides = [base + (1 if extra > i else 0) for i in order]
   starts = list(accumulate(strides[:-1], lambda x, y: x + y))
   starts = [0] + starts
   ends = [starts[i] + strides[i] for i in range(len(key))]
   cols = [chars[starts[i]:ends[i]] for i in originalorder]
   pairs = []
   for i in range((len(chars) - 1) // len(key) + 1):
       for j in range(len(key)):
           if i * len(key) + j < len(chars):
               pairs.append(cols[j][i])
 
   decode = dict((v, k) for (k, v) in self.create_encode_dict().items())
   return ''.join([decode[pairs[i] + pairs[i + 1]] for i in range(0, len(pairs), 2)])
 

Nahlásit jako SPAM
IP: 178.20.142.–
gna
~ Anonymní uživatel
1891 příspěvků
13. 11. 2023   #2
-
0
-

Ten ".index" vrací pozici prvního výskytu. Musíš do toho zakomponovat to, že chceš další od posledního nalezeného.

Nahlásit jako SPAM
IP: 213.211.51.–
Paragoon20
Newbie
13. 11. 2023   #3
-
0
-

#2 gna
děkuji moc, nevědel jsem si rady, ale uz funguje

Nahlásit jako SPAM
IP: 178.20.142.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 12 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý