>> ROB: Sveiki, es esmu Rob, un pieņemsim atšifrēt Vigenere programmu.
Tātad pirmā lieta, kas mums jādara, ir padarīt Noteikti lietotājs ievada, ko mēs gaidīts
viņiem pie komandrindas.
Tātad, ja argc nav 2 tas nozīmē, ka vai nu lietotājs nav ievadiet stīgu mēs
vēlas, lai, izmantojot kā mūsu šifrēšanas virkne, vai arī tie
ievadīts pārāk daudz lietas.
Un mēs nezinām, ko darīt ar šīm citām lietām.
>> Tāpēc mēs viņiem pateikt, ko viņi būtu iekļauta.
Un mēs atgriežamies.
Tagad, pieņemot, ka argc bija 2, mēs varam turpināt ar pārējo programmas.
>> Mēs Alias ​​nosaukumu ARGV [1]
uz mainīgo atslēgvārdu.
Tāpēc, ka mums nav izmantot nosaukumu ARGV [1]
visu pārējo programmu.
Un varbūt mēs aizmirst to, kas , kas nozīmē, un tā tālāk.
Atslēgvārds ir daudz jaukāk nosaukumu.
Un mēs uzreiz paķert garumu Mūsu atslēgvārdu šeit.
>> Labi, tāpēc tagad mēs vēlamies, lai pārliecinātos, ka Mūsu atslēgvārds ir faktiski derīga.
Atslēgvārds mēs izmantojam, lai šifrētu stīgas ir vienkārši alfabēta
rakstzīmes.
Ja lietotājs ievada bez alfabēta rakstzīmes, mums vajadzētu teikt, atslēgvārds
jāiekļauj tikai A through Z un pēc tam atgriezties.
Tāpēc šis cilpa vairākkārt uzsvērts visā rakstzīmes mūsu atslēgvārdu, pārbaudot
ka, ja viens nav alfabētiskā tad mums ir nepieciešams izdrukāt šo brīdinājumu.
>> Tagad, kad mēs uz šo jautājumu, mēs zinām, ka virkne ir pareizs.
Atslēgvārds ir pareizs.
Un tagad mums ir nepieciešams, lai saņemtu ziņu no lietotājs, ka viņi vēlas, lai mēs
šifrēt ar šo atslēgu frāze.
Tātad, lai iegūtu šo ziņojumu, mēs esam darīt, kamēr cilpa, kas notiek, lai
nepārtraukti iegūt virkni no lietotāja līdz brīdim, kad tās nonāk derīgu virkni.
>> Turpinot, mēs redzam šeit šo mainīgo, int nun_letters_seen.
Mēs redzēsim, kāpēc mums vajag ka otrajā.
Bet tas cilpa gatavojas atkārtot no i vienāds 0 visu ceļu līdz i
vienāds ar n, kas nozīmē, ka mēs esam atkārtojot visas iespējas
rakstzīmes mūsu vēstījumu.
Jo mēs gribam, lai šifrētu visiem varoņi mūsu vēstījumu.
Tāpēc paziņojums mums darīt, ja (isalphamessage [I] jo mēs nevēlamies, lai šifrētu
rakstzīmes, kas nav alfabēta.
Ja ir simboli, atstarpes, vai numurus, mums nav
vēlaties šifrēt tos.
>> Tagad, pieņemot, ka tas ir alfabēta, mēs vispirms vēlamies, lai noskaidrotu, ko mēs
tiešām vēlaties šifrēt ziņu, izmantojot.
Tātad, ko es ar to domāju?
>> Pieņemsim, ka galvenais frāze lietotājs ieraksta bija abc.
Tas ir tas, ko mēs izmantot, lai šifrētu.
Tagad, naivi, mēs domājam, tas nozīmē, ka Mēs vēlamies, lai šifrētu pirmo rakstzīmi
Mūsu ziņu pa 0, jo līdzekļi rotējot raksturs, 0.
>> Mēs vēlamies, lai šifrētu otro rakstzīmi par 1, trešā zīme par 2,
ceturtais raksturs ar 0, piektais līdz 1, sestajā ar 2, un tā tālāk.
Bet atceries, ka mēs vēlamies, lai izlaistu atstarpes un simbolus un ciparus.
Tas nozīmē, ka ja lietotājs ir ievadīta hello world kā ziņas
ka viņi vēlas, lai šifrētu, tad Mēs vēlamies, lai šifrētu h līdz 0
, kas atbilst A, e par 1, l līdz 2, l, 0, o ar 1.
Mēs vēlamies, lai izlaistu telpu, šifrētu w ar 2, o ar 0, 1, 2, 0.
Tātad paziņojums, ja mēs nebūtu izlaidis telpu, tad mēs būtu šifrēta
w, 0 un beidzās ar nepareiza string.
>> Labi, tas ir tas, kas mums ir vajadzīga mainīgo num_letters_seen par.
Ja mēs tikai gatavojas šifrēt, izmantojot šī metode, kas nav izlaist
simboli, atstarpes un cipari, tad mēs varētu tikai izmantot mainīgo i par to, kas
indeksēt mūsu galveno frāze ar.
Mums ir nepieciešams, lai izmantotu num_letters_seen lai saglabātu dziesmu par faktisko vietu
atslēgu frāze, ka mēs gribam, lai indeksu.
Tātad šeit, ja atslēgvārds mums ir, ja num_letter_seen mod keyword_length, tāpēc
kāpēc mums vajag mod pēc atslēgvārda garumu?
>> Nu, sveiki pasaule bija labs piemērs.
Ja atslēgvārds ir abc, tad mums nepārtraukti šifrētu ko tad b
tad c, tad wrap atpakaļ ap, a, b, c, a, b, c.
Tāpēc mums ir nepieciešams, lai mod pēc atslēgvārda garumu lai wrap atpakaļ apkārt.
>> Tātad, ja tas ir lielais burts, tad mēs gribam, lai šifrētu ar
Minētās vēstules alfabētu amats, kuru mēs, tikai
atņemot no kapitāla A. un Līdzīgi, mazajiem burtiem, mēs
var iegūt atslēgu, ko mēs gribam, ko atņemot no mazajam a.
Tātad, neatkarīgi no tā, vai vēstule ar galveno frāze bija kapitāls vai
mazo burtu, mēs ejam šifrētu ar tādu pašu daudzumu.
>> Tagad, ka mums ir mūsu atslēga, mēs redzam šeit, ka, ja ziņojumu i ir lielais
raksturs, tad mēs vēlamies, lai aprēķinātu pozīciju alfabēts ka
raksturu, pievienot savu atslēgu uz to, ietiniet atpakaļ apmēram tā, ka, ja mēs gājām garām
z mēs doties atpakaļ uz a, b, c, un tā tālāk.
Tad, visbeidzot, pievienojiet atpakaļ uz kapitāla A. So mēs pāriet atpakaļ [? Ascii?]
diapazonā no šiem burtiem, nevis ciparu pozīcijas alfabēta
no šiem burtiem.
>> Un mēs to pašu par mazajiem burtiem.
Izņemot gadījumus, mēs vēlamies, lai atņemtu ārā mazos un pievienojiet to atpakaļ uz
end, mazajiem burtiem.
Ievērojiet, ka num_letter_seen ir tikai palielina, ja ziņa man bija
alfabēta.
Tas ir, kā mēs izlaist atstarpes, simbolus, un numurus mūsu atslēgu frāze, jo
num_letter_seen ir tas, ko mēs izmantojam indeksēt mūsu atslēgvārdu.
>> Visbeidzot, galu galā, tagad šī ziņa i ir šifrēta, mēs
izdrukāt ziņu i.
Un tas arī viss.
Mans vārds ir Rob.
Un tas ir Vigenere.
>> [Mūzikas atskaņošanai]