>> ROB: Bok, ja sam Rob, i neka je odgonetnuti Program Vigenere.
Dakle, prva stvar koju trebate učiniti je da sigurni korisnik unio ono što smo očekivali
ih na naredbenog retka.
Dakle, ako argc nije 2. to znači da bilo korisnik nije unio niz mi
želite koristiti kao naš šifriranje string, ili oni
ušao previše stvari.
A mi ne znamo što učiniti s tim drugim stvarima.
>> Tako smo im reći što trebao stupiti.
I mi smo se vratili.
Sada, uz pretpostavku da argc je 2, što možemo i dalje s ostatkom programa.
>> Mi alias ime argv [1]
u varijablu ključnom riječi.
Tako da mi ne treba koristiti ime argv [1]
tijekom ostatka programa.
I možda ćemo zaboraviti ono to znači i tako dalje.
Riječ je puno ljepše ime.
I mi ćemo odmah zgrabiti duljinu naše ključne riječi ovdje.
>> U redu, tako da sada želimo provjeriti da naša ključna riječ je zapravo vrijedi.
Ključna riječ koristimo za šifriranje žice treba samo biti, abecedni
likovi.
Ako korisnik unio ne abecedni likovi, trebali bismo reći, ključna
mora sadržavati samo probojnu Z a zatim se vratiti.
Pa to za petlje iterates preko svega Likovi našeg ključnu riječ, pravopisa
da, ako netko nije, abecedni onda moramo ispisati tu opomenu.
>> Sada, kada smo došli do ove točke, znamo da string mora biti točna.
Ključna riječ mora biti točna.
I sad moramo dobiti poruku od Korisnik koji su nas žele
šifriranje s tom ključne fraze.
Dakle, da bi dobili tu poruku, imamo učiniti dok petlja koja će se
kontinuirano se niz od korisnika dok ne unesete valjani string.
>> Nastavljajući, ovdje vidimo ovu varijablu, int nun_letters_seen.
Vidjet ćemo zašto nam je potrebna da se u trenu.
No, to za petlje će se ponoviti s je jednako 0 skroz do I.
jednako n, što znači da smo iterating preko svega moguće
likovi u našoj poruci.
Zato želimo kodirati sve likovi u našoj poruci.
Dakle, primijetit ćemo učiniti ako (isalphamessage [I], jer mi ne želimo da šifriranje
likovi koji nisu abecedni.
Ako postoje simboli, prostori, ili brojevi, mi ne
želi kodirati one.
>> Sada, uz pretpostavku da je abecedni, prvo žele shvatiti ono što smo
zapravo želite šifrirati Poruka korištenja.
Pa što sam mislio?
>> Pretpostavimo da je ključni izraz korisnik unio je ABC.
To je ono što mi koristimo za šifriranje.
Sada, naivno, mislimo da znači da želimo kodirati prvi znak
naše poruke od 0, jer sredstva okretanjem znaka 0.
>> Mi želimo kodirati drugi znak po jedan, treći lik s 2,
Četvrti lik s 0, peti po 1, šesti po 2, i tako dalje.
Ali zapamtite, da želimo preskočiti prostori i simbola i brojeva.
To znači da ako je korisnik ušao Pozdrav svijetu kao poruka
da žele da šifriranje, a zatim želimo kodirati h po 0
odgovara na A, E za 1, l po 2, l s 0, 1 O strane.
Želimo preskočiti prostor, kodiran W po 2, O s 0, 1, 2, 0.
Dakle primijetiti, da nismo preskočila prostora, onda bismo kodiran
w po 0, a završila s netočno niz.
>> OK, to je ono što nam treba varijablu num_letters_seen za.
Ako smo samo željeli da šifriranje pomoću Ovaj postupak, koji se ne preskoči
simboli, prostori, i brojevi, onda smo može samo koristiti varijablu i kao što
na indeksu u našoj ključne fraze sa.
Moramo koristiti num_letters_seen zadržati Staza stvarnog mjesta u
Ključni izraz koji želimo indeksa.
Pa evo, ako ključna imamo, ako num_letter_seen mod keyword_length, pa
Zato trebamo mod po duljini ključne riječi?
>> Pa, zdravo je svijet bio dobar primjer.
Ako ključna je ABC, tada moramo kontinuirano šifriranje strane onda b
onda c, a zatim omotajte oko leđa, A, B, C, a, b, c.
Dakle, moramo mod po duljini ključne kako bi zamotajte natrag.
>> Dakle, ako je to veliko slovo, onda želimo kodirati strane
Položaj tim slovom u abecedi, koje smo dobili od samo
oduzimanjem iz kapitala A. A Slično tome, za mala slova, mi
možete dobiti ključ da želimo strane oduzimanjem se malim slovom a..
Dakle, bez obzira na to je li pismo u ključne fraze bio glavni ili
malo slovo, idemo u šifriranje za isti iznos.
>> Sada kada imamo ključ, što smo vidjeli ovdje, da, ako poruka i je veliko
karakter, onda želimo izračunati Pozicija u pismu koje
karakter, dodati naš ključ za njega, zamotajte natrag okolo, tako da ako mi prolazi
z smo se vratiti na a, b, c, i tako dalje.
Onda je, napokon, dodajte natrag na kapitalnu A. Dakle prebacimo natrag u [? ASCII?]
Raspon tih znakova, umjesto numeričke pozicije u abecedi
od ovih znakova.
>> I mi radimo istu stvar za malih slova.
Osim želimo oduzimati out malim slovima i dodati ga na leđa u
end, malim slovima.
Uočite da num_letter_seen samo Povećava se ako poruka sam bio
abecedni.
Ovo je način kako ćemo preskočiti razmake, simbole i Brojevi u naše ključne fraze, od
num_letter_seen je ono što smo pomoću na indeksu u našoj ključnoj riječi.
>> Konačno, na kraju, sad kad poruka Ja je kodiran, mi
ispisati poruku ja.
I to je to.
Moje ime je Rob.
A to je Vigenere.
>> [Glazba svira]