>> ROB: Živjo, jaz sem Rob in kaj je razvozlati Program Vigenere.
Torej prva stvar, ki jo morate storiti, je, da Prepričajte uporabnik vnese kar smo pričakovali
jim v ukazni vrstici.
Torej, če argc ni 2, ki pomeni bodisi Uporabnik ni vnesla godalni
želite, da se uporabi kot naš šifriranje niz, ali pa
začel preveč stvari.
In ne vemo, kaj naj naredim s tistimi drugimi stvarmi.
>> Tako smo jim povedali, kaj jim bi morala biti vpisana.
In se bomo vrnili.
Zdaj, ob predpostavki, da je bil argc 2, smo lahko nadaljuje s preostalim programa.
>> Mi Alias ​​ime argv [1]
v spremenljivo ključno besedo.
Tako da ne bi bilo treba uporabljali ime argv [1]
v preostali del programa.
In morda bomo pozabili, kaj to pomeni, in tako naprej.
Ključna beseda je veliko lepše ime.
In bomo takoj zgrabi dolžino naše ključne besede tukaj.
>> OK, zdaj smo želeli preveriti, da Naša ključna beseda je dejansko veljavna.
Ključne besede, ki jih uporabljamo za šifriranje strune bi morala biti samo po abecedi
znake.
Če uporabnik vnese non-po abecednem redu znaki, bi morali reči, ključne besede,
mora vsebovati le skoznjo Z in se nato vrne.
Torej ta zanka se ponovi čez vse znaki naše ključno besedo, preverjanje
da če ena ni abecedni potem moramo natisniti to opozorilo.
>> Zdaj, ko smo prišli do te točke, vemo, da mora biti pravilno niz.
Ključna beseda mora biti pravilna.
In zdaj moramo dobiti sporočilo od uporabnik, ki nas želijo
šifriranje s tem ključne besede.
Torej, da bi dobili to sporočilo, ki smo jih storiti, medtem ko zanke, da se dogaja, da
neprekinjeno dobili niz od uporabnika dokler ne vnesete veljaven niz.
>> Nadaljevanje vidimo tukaj, to spremenljivko, int nun_letters_seen.
Bomo videli, zakaj potrebujemo da v sekundi.
Ampak to zanko se bo Ponovil od i je enak 0, vse tja do i
enaka n, kar pomeni, da smo ponavljanjem čez vse mogoče
znaki v našem sporočilu.
Ker želimo šifrirati vse liki v našem sporočilu.
Torej opazili smo storili, če (isalphamessage [I] ker ne želimo šifrirati
Znaki, ki niso po abecedi.
Če obstajajo znaki, prostori, ali številke, ne bomo
želite šifrirati teh.
>> Zdaj, ob predpostavki, da je po abecednem redu, smo najprej želeli ugotoviti, kaj smo
dejansko želite šifrirati Sporočilo uporabo.
Torej, kaj sem mislil s tem?
>> Denimo, da ključni stavek uporabnik vnese bil abc.
To je tisto, kar smo s pomočjo za šifriranje.
Zdaj, naivno menimo, da pomeni, da želimo šifrirati prvi znak
našega sporočila za 0, saj sredstvo vrtenje značaj z 0.
>> Želimo, da za šifriranje drugi znak z 1, tretji znak za 2,
Četrti znak za 0, peta z 1, šesta z 2, in tako naprej.
Vendar ne pozabite, da želimo preskočiti prostori in simboli in številke.
To pomeni, da če je uporabnik vnesel Zdravo svet kot sporočilo
da želijo šifriranje, potem želimo šifriranje h z 0
ustreza a, e za 1, l z 2, l z 0, o z 1.
Želimo, da bi preskočili prostor, šifrirani w, 2, o z 0, 1, 2, 0.
Torej opazil, če ne bi preskočila prostor, potem bi bili šifrirani
w z 0 in končal s nepravilen niz.
>> OK, to je tisto, kar potrebujemo spremenljivko num_letters_seen za.
Če smo le, da bo šifriranje s pomočjo Ta metoda, ki ne preskoči
simboli, presledki in številke, nato pa smo lahko pa uporabite spremenljivko i, kot tisto,
indeks v naše ključne besede s.
Moramo uporabiti num_letters_seen da skladbo na dejanski kraj v
ključni stavek, ki ga želimo indeks.
Torej tukaj, če ključno besedo imamo, če num_letter_seen mod keyword_length, tako
Zakaj moramo mod po dolžini ključnih besed?
>> Pozdravljen svet je dober primer.
Če je ključna beseda abc, potem moramo nenehno šifriranje, ki ga nato b
nato c, nato zaviti nazaj okoli, a, b, c, a, b, c.
Zato moramo mod po dolžini ključnih besed da se ovije okoli nazaj.
>> Torej, če je to veliko črko, potem želimo šifriranje, ki ga
Položaj tega dopisa v abecede, ki smo jih dobili s samo
odšteje od kapitala A. In podobno, za male črke, smo
Lahko dobite ključ, da želimo s odšteje od male črke a.
Torej, ne glede na to, ali črka V ključnih stavek je bil kapital ali
male črke, da bomo šifriranje za enak znesek.
>> Zdaj, ko imamo ključ, vidimo tukaj, da če je sporočilo, i je z velikimi črkami
lik, nato pa želimo izračunati Položaj v abeceda, ki
lik, dodajte naš ključ do tega, zaviti nazaj okoli, tako da če bi šla mimo
Z vrnemo na A, B, C, in tako naprej.
Potem, na koncu dodamo nazaj na kapitalski A. Torej, prehajamo nazaj v [? Ascii?]
Obseg teh znakov namesto številčna položaj v abecedi
teh znakov.
>> In delamo isto stvar za male črke.
Razen želimo, da odštejemo od male črke in ga dodate nazaj v
end, male črke.
Opazimo, da num_letter_seen le povečajo, če sporočilo sem bil
po abecednem redu.
To je, kako bomo preskočili prostore, simboli in Številke v naši ključne besede, saj
num_letter_seen je tisto, kar smo s pomočjo indeks v našo ključno besedo.
>> Končno, na koncu, zdaj ko sporočilo i je bila šifrirana, smo
izpisal sporočilo i.
In to je to.
Moje ime je Rob.
In to je Vigenere.
>> [Predvaja glasba]