>> ROB: Hola, sóc Rob, i anem a desxifrar el programa de Vigenère.
Així que el primer que hem de fer és fer Assegureu-vos que l'usuari ha introduït el que esperàvem
que en la línia d'ordres.
Així que si argc no és 2, que això significa, ja sigui l'usuari no va entrar a la cadena que
volen ser utilitzant com la nostra encriptació cadena, o es
entrat massa coses.
I no sabem què fer amb aquestes altres coses.
>> Així que els diem el que hauria d'haver entrat.
I tornem.
Ara, suposant que argc va ser de 2, podem continuar amb la resta del programa.
>> Ens àlies el nom de argv [1]
en la paraula clau variable.
Així que nosaltres no hem de utilitzar el nom de argv [1]
tota la resta del programa.
I potser ens oblidem del que això significa, i així successivament.
La paraula clau és un nom molt més bonic.
I ens agafem de seguida la longitud de la nostra paraula clau aquí.
>> OK, així que ara volem comprovar que la nostra paraula clau és realment vàlida.
La paraula clau s'utilitza per xifrar les cadenes només ha de ser alfabètic
personatges.
Si l'usuari ha introduït no alfabètic caràcters, hauríem de dir, la paraula clau
només pot contenir un mitjà de Z i després tornar.
Així que aquest bucle for itera sobre tots personatges de la nostra paraula clau, comprovant
que si un no és alfabètic i després hem de imprimir aquest advertiment.
>> Ara, un cop arribem a aquest punt, sabem que la cadena ha de ser correcta.
La paraula clau ha de ser correcta.
I ara hem de fer arribar el missatge de l'usuari que ens volen
xifrar amb la clau.
Així que per aconseguir aquest missatge, tenim una fer, mentre que bucle que va a
obtenir contínuament una cadena de l'usuari fins que entrin en una cadena vàlida.
>> Continuant, veiem aquí aquesta variable, int nun_letters_seen.
Ja veurem per què necessitem que en un segon.
Però aquest bucle es repetirà d'i és igual a 0 fins al final fins que i
és igual a n, el que significa que estem iterant sobretot possible
personatges del nostre missatge.
Perquè volem xifrar tots els personatges del nostre missatge.
Així notem que fem si (isalphamessage [I], perquè nosaltres no volem xifrar
caràcters que no són alfabètic.
Si hi ha símbols, espais, o números, no ho fem
desitgi xifrar aquests.
>> Ara, suposant que és alfabètic, primer anem a esbrinar el que
realment vol xifrar el missatge utilitzant.
Llavors, què vull dir amb això?
>> Anem a suposar que la frase clau l'usuari va ingressar era abc.
Això és el que estem utilitzant per xifrar.
Ara, ingènuament, pensem que això significa que volem xifrar el primer caràcter
del nostre missatge per 0, ja que un mitjà girar el caràcter per 0.
>> Volem xifrar el segon caràcter per 1, tercer personatge per 2,
el quart caràcter per 0, el cinquè per 1, la sisena per 2, i així successivament.
Però recordeu, que volem saltar espais i símbols i números.
Això vol dir que si l'usuari havia entrat hola món com el missatge
que volen xifrar, a continuació, volem xifrar la h per 0
corresponent a la a, la e per 1, el l per 2, el l per 0, el o abans de l'1.
Volem saltar l'espai, xifrada el W per 2, l'O per 0, 1, 2, 0.
Així notar, si no haguéssim saltat la espai, llavors hauria xifrat
la w per 0 i va acabar amb la cadena incorrecta.
>> OK, això és el que necessitem la variable num_letters_seen per.
Si només ens anàvem a xifrar utilitzant aquest mètode, que no ometre
símbols, espais i nombres, llavors només podria utilitzar la variable i com ho
per indexar la nostra frase clau amb.
Hem d'utilitzar num_letters_seen mantenir pista del lloc real en el
frase clau que volem indexar.
Així que aquí, si la paraula clau que tenim, si num_letter_seen keyword_length mod, per
Per què necessitem de mod per la longitud de paraules clau?
>> Bé, hola món era un bon exemple.
Si la paraula clau és abc, llavors necessitem per xifrar contínuament per un llavors b
llavors c, després embolicar la volta, a, b, c, a, b, c.
Així que hem de modificar la longitud de la paraula clau per tal de concloure la volta.
>> Així que si això és una lletra majúscula, llavors volem xifrar pel
posició d'aquesta lletra en l'alfabet, la qual obtenim amb només
restant el capital A. I de la mateixa manera, per a les lletres minúscules, que
pot obtenir la clau que volem per restant a minúscula.
Així que, independentment de si la carta en la frase clau va ser majúscula o
lletra minúscula, anem a xifrar per la mateixa quantitat.
>> Ara que tenim la clau, que veiem aquí, que si el missatge i és una majúscula
caràcter, llavors volem calcular el posició en l'alfabet que
caràcter, afegir la nostra clau a la mateixa, emboliqui de nou voltant de manera que si ens vam anar més enllà d'un
z tornem a, b, c, i així successivament.
Llavors, finalment, afegir nou sobre el capital A. Així canviem de nou en el botó [? Ascii?]
gamma d'aquests caràcters en lloc de la posició numèrica en l'alfabet
d'aquests personatges.
>> I fem el mateix per caràcters en minúscules.
Llevat que volem restar minúscules una vegada i afegir de nou en el
extrem, a minúscula.
Tingueu en compte que només és num_letter_seen incrementat si el missatge que estava
alfabètic.
Així és com ens saltem espais, símbols i números en la nostra frase clau, ja
num_letter_seen és el que estem utilitzant per indexar la nostra paraula clau.
>> Finalment, en l'extrem, ara que el missatge i s'ha xifrat, que
imprimeixo missatge i.
I això és tot.
El meu nom és Rob.
I això és Vigenère.
>> [REPRODUCCIÓ DE MÚSICA]