>> ROB: Cześć, jestem Rob, i niech to rozszyfrować Program Vigenere'a.
Tak więc pierwszą rzeczą, którą musisz zrobić to zrobić czy użytkownik wprowadził to, czego oczekuje
je w wierszu polecenia.
Tak więc, jeśli nie jest argc 2 oznacza albo użytkownik nie wprowadzi my ciąg
chcesz używać jako naszego szyfrowania łańcuch, albo
Wprowadzona zbyt wiele rzeczy.
I nie wiemy, co robić z tych innych rzeczy.
>> Więc powiedz im to, co oni powinny wchodzić.
I wracamy.
Teraz, przy założeniu, że argc było 2, możemy kontynuować reszty programu.
>> My alias nazwę argv [1]
do kluczowych zmiennych.
Tak, że nie mamy do stosować nazwę argv [1]
w pozostałej części programu.
A może zapomnimy, co to znaczy, i tak dalej.
Słowo kluczowe jest o wiele ładniejsza nazwa.
A my natychmiast chwycić długość naszego hasła tutaj.
>> OK, więc teraz chcemy, aby sprawdzić, kluczowe jest rzeczywiście nasz ważny.
Hasło używamy do szyfrowania ciągi powinny być tylko alfabetycznie
znaków.
Jeśli użytkownik wprowadził zakaz alfabetycznie znaków, powinniśmy powiedzieć, słów kluczowych
musi zawierać tylko przelotowy Z a następnie wrócić.
Więc to dla iteruje pętli na wszystko znaków z naszego hasła, sprawdzając
że jeśli ktoś nie jest w kolejności alfabetycznej, a następnie musimy wydrukować tego ostrzeżenia.
>> Teraz, gdy już dotrzesz do tego punktu, znamy że łańcuch musi być poprawne.
Hasło musi być poprawne.
A teraz musimy się komunikat z Użytkownik, który chce nas
szyfrowania z tej frazy kluczowe.
Tak, aby ta wiadomość, mamy zrobić, gdy pętla, która będzie
stale uzyskać ciąg od użytkownika aż wprowadzić prawidłowy ciąg.
>> Kontynuując, widzimy tę zmienną, int nun_letters_seen.
Zobaczymy, dlaczego musimy że w drugiej.
Ale to dla pętli będzie iteracyjne od i jest równe 0 aż do I
jest równa n, co oznacza, mamy iteracji na wszystkie możliwe
znaków w naszej wiadomości.
Ponieważ chcemy, aby zaszyfrować wszystkie znaki w naszej wiadomości.
Więc jeśli zauważysz robimy (isalphamessage [I], ponieważ nie chcemy, aby zaszyfrować
znaków, które nie są w kolejności alfabetycznej.
Jeśli istnieją symbole, miejsca, lub numery, nie mamy
chcesz zaszyfrować te.
>> Teraz, przy założeniu, że jest to w kolejności alfabetycznej, najpierw chce dowiedzieć się, co
rzeczywiście chcesz zaszyfrować wiadomość za pomocą.
Więc co mam na myśli?
>> Załóżmy, że fraza kluczowa użytkownik wszedł był abc.
To jest to, czego używasz do szyfrowania.
Teraz, naiwnie, uważamy, że oznacza to, że chcemy szyfrować pierwszy znak
naszej wiadomości przez 0, ponieważ środki obrócenie go przez 0.
>> Chcemy zaszyfrować drugi znak o 1, trzecia postać przez 2,
Czwarta postać o 0, piąty przez 1, szósty przez 2, i tak dalej.
Ale pamiętaj, że chcemy pominąć miejsca i symbole i numery.
Oznacza to, że jeśli użytkownik wszedł hello world w komunikacie
że chcesz zaszyfrować, a następnie chcemy zaszyfrować h przez 0.
odpowiadająca a, e przez 1, l przez 2, l przez 0, o. o 1.
Chcemy, aby pominąć miejsca, szyfrowane W przez 2, o o 0, 1, 2, 0.
Więc zauważyć, jeśli nie pomijane miejsca, to byłby zaszyfrowany
W od 0 i skończyło się nieprawidłowy ciąg.
>> OK, to jest to, czego potrzebujemy zmiennej num_letters_seen dla.
Jeśli byliśmy po prostu się do szyfrowania za pomocą Ten sposób, który nie pominąć
symbole, miejsca i numery, to może po prostu użyć zmiennej i jak co
do wskaźnika do naszej frazy kluczowe z.
Musimy wykorzystać num_letters_seen zachować utwór od rzeczywistego miejsca w
frazy kluczowe, które chcemy indeksować.
Więc tutaj, jeśli słowo kluczowe mamy, jeśli num_letter_seen mod keyword_length, więc
dlaczego musimy mod o długości słowa kluczowego?
>> Cóż, witaj świecie był dobrym przykładem.
Jeśli słowo kluczowe było abc, to musimy stale szyfrowania przez to b
następnie c, a następnie owinąć powraca, , b, c, b, c.
Więc musimy o długości kluczowym mod Aby zawijać powraca.
>> Więc jeśli to jest wielką literą, następnie chcemy szyfrować przez
Pozycja tej litery alfabetu, które mamy po prostu
odjęciu kapitału A. I Podobnie, dla małych liter, my
Można dostać klucz, który chcemy przez odjęcie się małą A.
Tak więc niezależnie od tego, czy list w kluczowym zwrotem kapitału lub był
mała litera, będziemy szyfrowania w tej samej wysokości.
>> Teraz, mamy klucz, widzimy, że jeśli wiadomość i to wielkie
znaków, a następnie chcemy obliczyć pozycja w alfabecie, że
charakter, dodaj nasz klucz do niego, zawinąć z powrotem się tak, że jeśli poszliśmy przeszłości
z wracamy do A, B, C, i tak dalej.
Wtedy wreszcie dodać ponownie kapitałowej A. Tak cofać z powrotem do [? ASCII?]
Zakres tych znaków zamiast pozycja numeryczna w alfabecie
z tych znaków.
>> I robimy to samo dla małe litery.
Wyjątkiem chcemy odjąć małe litery i dodać go ponownie w
koniec, małe litery.
Zauważ, że num_letter_seen tylko zwiększany, jeśli wiadomość byłem
alfabetycznie.
W ten sposób możemy pominąć spacje, symbole i Liczby w naszej kluczowej frazy, od
num_letter_seen to co używamy do wskaźnika do naszego hasła.
>> Na koniec, w celu teraz komunikat I został zaszyfrowany, my
wydrukować wiadomość i.
I to jest to.
Nazywam się Rob.
I to jest Vigenere'a.
>> [MUZYKA GRA]