[Odtwarzanie muzyki] ZAMYLA CHAN: Chcę realizować Vigenere, nieco bardziej zabezpieczyć szyfr niż Cezara. Plain text jest szyfrowane za pomocą ciąg zamiast liczby całkowitej. Każda postać w alfabetycznym zwykły tekst zostanie przesunięty o List w hasła. W tym przykładzie, słowo kluczowe ohai, O odpowiada przesunięciu 14, H, aby przesunięcie 7, A, przesunięcie 0; i przesunięcie 8. Jeśli z powodzeniem wdrożony Państwa Szyfr Cezara, to będzie miło ramy, z których może realizować Vigenère. Jak widać, prowadzenie Vigenère Szyfr z pojedynczego znaku jako kluczowe jest to samo jak szyfr Cezara. Te same kroki dotyczą Vigenère tak jak w Cezara. Hasło to druga linia poleceń Argument, więc masz do niego dostęp z argv1. Następnie należy sprawdzić, czy klucz Słowo to rzeczywiście wszystko w kolejności alfabetycznej. Oto gdzie jest alpha może się przydać. Jeśli masz ważne słowo, otrzymasz siły od użytkownika, a następnie jesteś gotowy, aby zaszyfrować. Wzór jest podobny szyfr Vigenere w Caesar wzoru, z wyjątkiem teraz k staje k indeks j, wskazując j-litera hasła. Chcę przejść przez ten proces. Kontaktując się chciał wysłać wiadomość do krach, lubię cię, ale tak nie jest żeby wszyscy wiedzieli. Więc używasz Vigenère szyfr z panda kluczowe, ponieważ dobrze, również jak pandy. Pierwszy list, I, zostanie przesunięty przez p, co daje x, 15 listów po I, bo 15 p jest 16 litera alfabetu. Kolejny list w postaci zwykłego tekstu jest miejsca, tak, że nie będzie się zmieniać. A Indeks słów kluczowych nie zmieni. Następnie kolejna litera w postaci zwykłego tekstu jest L, przesunięte o, która nie zmienia list zwykły tekst w ogóle, bo jest 0-gi litera alfabetu. Proces trwa, pogłębianie znaków hasła za każdym razem jest List w postaci zwykłego tekstu. Po raz ostatni list w hasła jest osiągnięty, kluczowe otacza i przesuwa się do następnego równinie List tekst przez p. X lvne Noh. Jak romantycznie. Tak więc biorąc pod uwagę charakter, jak można przekonwertować że w odpowiedni szyfrowania zmiany? Spróbuj porównać ASCII wartości do zmiany. Może znajdziesz relację między literami i ich indeks alfabetyczny używając ASCII matematyki. Czy można dodać lub odjąć jeden znak od drugiego, aby uzyskać Ci pożądany wynik? Pamiętaj, że zmiany w przypadku wielkich i małe litery są takie same. Więc może trzeba określić dwa podobnych wzorów do reprezentowania shift, jeden dla wielkich znaków hasła, a jeden dla małych liter jednego. Dalej, należy pamiętać, że zaliczki słów kluczowych tylko wtedy, gdy znak w plain text jest list i że zwykły przypadek Tekst musi być zachowana. Więc jeśli spojrzymy na formule Shift Vigenere istnieją dwa index zmienne, i oraz j. One śledzi pozycji w zwykły Tekst i inne stanowiska w hasła. Ale Twój zwykły tekst może być znacznie dłuższy niż słowa kluczowego, w takim przypadku Indeks słów kluczowych musi zawija na początku hasła. Jak to zrobić? Spójrzmy wstecz na operator modulo. Modulo jest definiowana jest reszta z dzielenia dwóch liczb. Ale to, co jest rzeczywiste praktyczne korzystać z modulo? Cóż, powiedzmy, że masz dużą grupę ludzie, i trzeba się podzielić na trzy grupy. Jednym ze sposobów na dzielenie ludzi na grupy jest mieć je odliczać. You numer grupy Grupy nr 1, 2 i 3. Pierwsza osoba powie, 1, następne 2, następne 3. Osoba po tym powie 1, bo nie grupa 4, oraz jest Ilość zaczyna się od tego. Możesz użyć modulo do zrobić to samo. Tym razem, grupy będą Grupa jest 0, 1, i 2. Pierwsza osoba, liczba 1 modulo 3, jest 1. Osoba 2 modulo 3 jest 2. Osoba 3 modulo 3 jest 0. Osoba 4 modulo 3 daje 1, a więc grupy można owinąć wokół. Więc jeśli wziąć indeks i Modulo że indeks w maksymalnym rozmiarze, Wynik nie będzie większa niż lub równej wielkości, co oznacza, że może zwiększyć indeks jako dużo, jak chcesz. I tak długo, jak Modulo indeksu przez jakiś numer, nie będzie uzyskać numer większa niż. Więc mamy 10 ludzi, a nie 5, a wszyscy oni są przydzielane do grup liczbę 0, 1 lub 2. Spróbuj zastosować to do owijania na Hasło, z wyjątkiem zamiast sortowania ludzi do numerów grup chcesz Indeks słów kluczowych, tak aby można uzyskać odpowiedni charakter do przesuwać bez przekraczania długość ciągu. Z tym, masz Vigenere szyfr. Nazywam się Zamyla, a to jest CS50.