>> [MUZIKO ludi]
>> ZAMYLA Chan: Estu la implemento Vigenère, iomete pli
sekurigi kodita ol Cezaro.
La ebenaĵo teksto estas enciphered uzante ŝnuro anstataŭ entjero.
Ĉiu alfabeta karakteron en plata teksto estas moviĝis per
letero en la ŝlosilvorto.
>> En ĉi tiu ekzemplo, la ŝlosilvorto ohai, ho respondas al ŝanĝo de 14; H al
movi de 7; A, ŝanĝo de 0, kaj Mi ŝanĝo de 8.
Se vi sukcese implementado via Cezaro ĉifro, ĝi estos bela
kadro de kiu vi povas apliki Vigenère.
Kiel vi povas vidi, kurante Vigenère kodita kun sola karaktero kiel
ŝlosilvorto estas la sama aĵo kiel Cezaro ĉifro.
>> La samaj piedosignoj apliki al Vigenère kiel ili faris en Cezaro.
La ŝlosilvorto estas la dua komandlinio argumenton, do vi konsenti li kun argv1.
Tiam vi bezonas por kontroli ke la ŝlosilon vorto estas ja ĉiuj alfabeta.
Tie estas kie estas alfa povas veni en oportuna.
Se vi havas validan ŝlosilvorto, vi havos la forto de la uzanto, kaj poste
vi pretas encipher.
>> La Vigenère formulo estas simila al Cezaro formulon, krom nun k
igas k suba indico j, indikante la j-a litero de la ŝlosilvorto.
Ni paŝo tra ĉi tiu procezo.
Diru vi volis sendi mesaĝon al viaj akcidento, mi ŝatas vin, sed vi ne
volas ke ĉiu scias.
Do vi uzas Vigenère kodita kun la ŝlosilvorto panda, ĉar, nu, vi ankaŭ
ŝatas pandas.
>> La unua letero, mi, estos ŝanĝiĝis per p, donante x, 15 literoj post mi,
ĉar 15 p estas la 16-a litero de la alfabeto.
La sekvantan leteron en la ebenaĵo teksto spaco, tiel ke ne estos moviĝis.
Kaj la indekso de la ŝlosilvorto ne ŝanĝos.
>> Tiam la sekva litero en plata teksto estas l, moviĝis per a, kiu ne ŝanĝi
la simpla teksto letero al ĉiuj, ĉar a estas la 0th litero de la alfabeto.
La procezo daŭras, antaŭi la ŝlosilvorto karaktero ĉiufoje estas
letero en la ebenaĵo tekston.
Iam la lasta litero en la ŝlosilvorto estas atingita, la ŝlosilvorto kovras ĉirkaŭ kaj
ŝanĝoj al la sekvanta ebenaĵo teksto leteron per p.
X lvne Noh.
Kiom romantika.
>> Do donita al gravulo, kiel vi konverti ke en la respondaj
kodita movo?
Provu kompari la ASCII valorojn al la ŝanĝo.
Eble vi povas trovi rilaton inter la literoj kaj iliaj
alfabeta indekso uzante ASCII math.
Ĉu vi povas adicii aŭ subtrahi unu signo el alia akiri
vi la deziratan rezulton?
>> Memoru ke la movoj por majuskla kaj minuskla literoj estas samaj.
Do eble vi devos identigi du similaj formuloj por reprezenti la
movo, unu por majuskla ŝlosilvorto karaktero, kaj unu
por minuskla tiu.
>> Venonta, memoru, ke la ŝlosilvorto antaŭas nur se la karakteron en
plata teksto estas litero kaj tiu la kazo de la ebenaĵo
teksto devas esti protektata.
Do, se ni rigardas la formulo por la Vigenère movo, estas du indekso
variabloj, i kaj j.
Gardas spuro de la pozicio en ebenaĵo teksto, kaj la alia la pozicio
en la ŝlosilvorto.
Sed via simpla teksto eblas multe pli longa ol via ŝlosilvorto, en kiu kazo via
ŝlosilvorto indekso bezonas enpaki ĉirkaŭ reen al la komenco de la ŝlosilvorto.
>> Kiel vi faris tion?
Ni retrorigardas al la module operatoro.
Module estas difinita estas la resto de dividado de du nombroj.
Sed kio estas reala praktika uzo de module?
>> Nu, diru vi havas grandan grupon de popolo, kaj vi devas dividi en
tri grupoj.
Unu maniero dividi homojn en grupojn estas havi ilin kalkuli malproksime.
Vi numeron de la grupoj grupo numero 1, 2, kaj 3.
La unua persono diros 1, la venonta 2, la proksimaj 3.
La persono poste diros 1, ĉar ne ekzistas grupo 4, kaj la
grafo komenciĝas super de tie.
>> Vi povas uzi module al fari la samon.
Ĉi tiu epoko, la grupoj volo esti grupo 0, 1, kaj 2.
La unua persono, nombro 1 module 3, estas 1.
Persono 2 module 3 estas 2.
Persono 3 module 3 estas 0.
Persono 4 module 3 donas 1, kaj tiom la grupoj povas enpaki ĉirkaŭe.
>> Do se vi prenos indekso kaj module ke indico de maksimuma grandeco, la
rezulto neniam estos pli granda ol aŭ egala al la grandeco, signifante ke vi
povas pliigi la indekso kiel kiom vi deziras.
Kaj tiel longe, kiel vi module la indekso de iu numero, vi ne ricevos nombro
pli granda ol tio.
Do ni havas 10 personoj anstataŭ 5, kaj ili ĉiuj get atribuita al grupoj
nombro 0, 1, aŭ 2.
>> Provu apliki ĉi tiu al kroĉas super la ŝlosilvorto, escepte anstataŭ ordigi
popolon en grupo numerojn vi volas ke la indekso de la ŝlosilvorto por ke vi povas
akiri la rajton karaktero por la movi sen superi la
longeco de la kordo.
Kun tiu, vi havas vian Vigenère ĉifro.
Mia nomo estas Zamyla, kaj ĉi tiu estas CS50.