[Musik spielt] ZAMYLA CHAN: Lassen Sie implementieren Vigenere, eine etwas sichern als Caesar-Chiffre. Der Klartext wird verschlüsselt mit ein String anstelle eines Integer. Jeder Charakter in alphabetischer Klartext wird durch eine verschobene Schreiben in das Schlüsselwort. In diesem Beispiel ist das Schlüsselwort ohai, O entspricht einer Verschiebung von 14 H, ein Verschiebung von 7; A, Verschiebung 0; und ich eine Verschiebung von 8. Wenn Sie schon erfolgreich umgesetzt Ihre Caesar-Chiffre, es wird ein schöner sein Rahmen, aus dem Sie kann Vigenere umzusetzen. Wie Sie sehen können, läuft ein Vigenere Chiffre mit einem Zeichen als Stichwort ist die gleiche Sache als Caesar-Chiffre. Die gleichen Schritte gelten für Vigenere wie sie in Caesar tat. Das Schlüsselwort ist die zweite Befehlszeile Argument, so dass Sie darauf zugreifen mit argv1. Dann brauchen Sie, um zu überprüfen, dass der Schlüssel Wort ist in der Tat alle alphabetisch. Hier ist, wo ist alpha kann sich als nützlich erweisen. Wenn Sie eine gültige Schlüsselwort haben, erhalten Sie die Stärke von dem Benutzer, und Sie sind bereit zu verschlüsseln. Die Vigenère-Chiffre Formel ist ähnlich Caesar Formel, außer jetzt k wird k Index j, was die j-te Anfangsbuchstaben des gesuchten Stichworts. Lassen Sie uns durch diesen Prozess fort. Angenommen, Sie möchten eine Nachricht an Ihre Nachricht Crash, ich mag dich, aber du nicht wollen, dass jeder zu wissen. So verwenden Sie eine Vigenère-Chiffre mit dem Stichwort panda, weil, na ja, Sie auch mag Pandas. Der erste Brief, I, werden verschoben von p, so dass x, 15 Buchstaben, nachdem ich, weil 15 p ist der 16. Buchstaben des Alphabets. Der nächste Buchstabe im Klartext ein Raum, so dass wird nicht verschoben werden. Und der Index der Stichwort wird sich nicht ändern. Dann der nächste Buchstabe im Klartext ist l durch eine verschobene, die sich nicht verschieben kann der Klartext Brief überhaupt, weil a ist der 0-te Buchstabe des Alphabets. Der Prozess wird fortgesetzt, die Förderung der Stichwort Charakter jedes Mal gibt es eine Buchstaben im Klartext. Sobald der letzte Buchstabe in der Keyword erreicht hat, wickelt das Schlüsselwort um und wonach die nächste Ebene Text Schreiben p. X lvne noh. Wie romantisch. So ein Zeichen gegeben, wie Sie konvertieren dass in die entsprechende Chiffre Verschiebung? Versuchen Vergleich der ASCII Werte der Verschiebung. Vielleicht finden Sie eine Beziehung zwischen den Buchstaben und deren alphabetischer Index mit ASCII math. Können Sie addieren oder subtrahieren ein Zeichen voneinander um Sie das gewünschte Ergebnis? Beachten Sie, dass die Verschiebungen für Großbuchstaben und Kleinbuchstaben sind die gleichen. Also vielleicht müssen Sie zwei identifizieren ähnliche Formeln zur Darstellung des Verschiebung, eine für einen Groß- Stichwort Charakter, und ein für einen Kleinbuchstaben ein. Weiter zu beachten, dass die Keyword-Fortschritte nur wenn das Zeichen in Klartext ist ein Brief, und dass der Fall der Ebene Text muss bewahrt werden. Also, wenn wir uns die Formel für die Vigenere Verschiebung gibt es zwei Index Variablen, i und j. One verfolgt die Position im Klartext Text und das andere die Position in das Schlüsselwort. Aber Ihr Klartext kann viel mehr als Keyword, in diesem Fall Ihre Sachregister muss umschlingen zurück zu Beginn des Schlüsselwortes. Wie machst du das? Werfen wir einen Blick zurück auf die Modulo-Operator. Modulo definiert der Rest der Division zweier Zahlen. Aber was ist eine tatsächliche praktische Verwendung von Modulo? Nun, sagen, Sie haben eine große Gruppe von Menschen, und Sie müssen sich zu teilen in drei Gruppen. Ein Weg, um die Menschen in Gruppen einzuteilen ist, haben sie abzählen. Sie Anzahl der Gruppen Gruppe Nummer 1, 2 und 3. Die erste Person wird sagen: 1 die nächsten 2, die nächsten 3. Die Person, die nach 1 wird sagen, weil es nicht eine Gruppe 4 und die Zählung beginnt von dort über. Sie können Modulo zu bedienen dasselbe tun. Dieses Mal wird die Gruppen sein Gruppe 0, 1, und 2. Die erste Person, die Anzahl 1 modulo 3, 1 ist. Person 2 modulo 3 ist 2. Person 3 Modulo-3-0 ist. Person 4 modulo 3 gibt 1 usw. können die Gruppen herum wickeln. Also, wenn Sie nehmen einen Index und Modulo dieser Index durch eine maximale Größe, die Ergebnis ist niemals größer als oder gleich der Größe, was bedeutet, dass Sie kann der Index als erhöhen viel, wie Sie möchten. Und solange Sie die Modulo-Index eine Zahl, werden Sie nicht bekommen eine Reihe größer. So haben wir 10 Personen statt 5, und sie würden alle Gruppen zugewiesen bekommen Zahl 0, 1 oder 2 ist. Versuchen Sie, dies dem Wickeln über die Anwendung Stichwort, außer anstelle der Sortierung Menschen in Gruppe Zahlen Sie wollen, dass die Index des Schlüsselwort, so dass Sie die richtige Zeichen für die verschieben, ohne den Länge der Zeichenfolge. Damit haben Sie Ihre Vigenère-Chiffre. Mein Name ist Zamyla, und dies ist CS50.