>> [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.