Malá hra o velkého Bajta (4) - Vigenérova šifra

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

koblížek007
nováček
Příspěvky: 1
Registrován: červen 18
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Malá hra o velkého Bajta (4) - Vigenérova šifra

Příspěvekod koblížek007 » 02 čer 2018 18:05

Zatím se učím a zkouším.

Pouze šifrování:

Kód: Vybrat vše

import unidecode

puvodni_zprava = unidecode.unidecode(input("Zadejte zprávu k šifrování: "))
heslo = unidecode.unidecode(input("Zadejte heslo: "))

abeceda = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
otocena_abeceda = abeceda[::-1]
i = 0

def kontrola():
   global i

   velikost_hesla = len(heslo)

   if i >= velikost_hesla:
      i = 0
   else:
      pass

   if heslo[i] in abeceda:
      pass
   else:
      i = i + 1
      kontrola()

for znak in puvodni_zprava:
   if znak in abeceda:
      pass
   else:
      print(znak)
      continue

   kontrola()

   if(znak == heslo[i]):
      print(otocena_abeceda[0])
   else:
      vzdalenost_prvni = abeceda.find(znak)
      vzdalenost_prvni = vzdalenost_prvni + 1
      vzdalenost_druha = otocena_abeceda.find(heslo[i])

      vzdalenost = vzdalenost_prvni + vzdalenost_druha

      if(vzdalenost > 26):
         vzdalenost = vzdalenost - 26

      print(otocena_abeceda[vzdalenost])

   i = i + 1

Reklama
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Malá hra o velkého Bajta (4) - Vigenérova šifra

Příspěvekod faraon » 03 čer 2018 07:22

Vítej na PC-Help, pěkný začátek. Jen malou poznámku - reciproká šifra má tu výhodu, že šifrovací funkce je zároveň dešifrovací. Takže s heslem "A" (neboli posun 0) bude:

Kód: Vybrat vše

OT: ABCDEFGHIJKLMNOPQRSTUVWXYZ
ŠT: ZYXWVUTSRQPONMLKJIHGFEDCBA
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)


Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Majestic-12 [Bot] a 3 hosti