>> [音樂播放]
>> ZAMYLA陳：讓我們來實現 的vigenere，一個稍微更
比撒安全的密碼。
純文本加密 一個字符串，而不是一個整數。
每個字母字符 純文本偏移了
信中的關鍵字。
>> 在這個例子中，關鍵字ohai，O 對應於一個移位14，H到
7轉移，移 0和I 8的轉變。
如果你已經成功地實現 凱撒密碼，它會是一個不錯的
您框架 可以實現VIGENERE。
正如你可以看到，運行的Vlgenere 一個單一的字符作為密碼
關鍵字是一樣的東西 作為凱撒密碼。
>> 同樣的步驟適用於VIGENERE的 因為他們沒有在凱撒。
關鍵字是第二個命令行 的說法，所以你訪問它與argv1。
然後，你需要驗證的關鍵 字是確實的所有字母。
這裡是α 可以派上用場了。
如果你有一個有效的關鍵字，你會得到 從用戶的實力，然後
你準備進行加密。
>> 類似VIGENERE密碼公式 凱撒式的，現在除了K表
成為k下標J， 關鍵字的第j個信。
讓我們一步步通過這個過程。
說，你想發送一條消息到您的 崩潰，我喜歡你，但你不這樣做
我想每個人都知道。
因此，與您使用VIGENERE密碼 關鍵字熊貓，因為，你也
喜歡大熊貓。
>> 我的第一個字母，將被轉移 由P，X，我的15個字母後，
因為15 p是16日 字母。
在純文本的下一個字母 一個空格，這樣就不會被轉移。
和索引關鍵字 不會改變。
>> 然後以純文本的下一個字母 升，偏移了，不移位
純文本信可言，因為 一個字母是0。
這個過程一直持續，推進 關鍵字字符，每次有一個
純文本的信件。
一旦在關鍵字的最後一個字母 到達時，在關鍵字的環繞和
轉移到下一平原的 由p的文字字母。
X的lvne能。
如何浪漫。
>> 所以一個字符，你怎麼轉換 到相應
密轉變呢？
試著比較ASCII 值移位。
也許你可以找到一個關係 字母和它們之間的
字母索引使用ASCII數學。
你可以添加或減去一個字符 從另一個
你想要的結果嗎？
>> 請記住，大寫的轉變 和小寫字母是相同的。
因此，也許你需要識別兩個 類似的公式來表示
移，一個一個大寫 關鍵字字符和一個
為小寫的一個。
>> 接下來，請記住，關鍵字的進步 如果字符
純文本是一個字母， 的情況下的純
必須保留文本。
因此，如果我們看的公式 的vigenere移位，有兩個索引
變量i和j。
一個在平原的位置跟踪 文本，和其他的位置
在關鍵字。
但是，您的純文本可能會更長 比你的關鍵字，在這種情況下，你的
關鍵字索引需要繞回 關鍵字的開頭。
>> 你怎麼做到這一點？
讓我們回頭看看 模運算符。
模數的定義是餘數 ，除以兩個數字。
但是，什麼是實際 使用模？
>> 好吧，說你有一大群 人，和你需要分成
三組。
一種方式把人分成組 是有他們數。
你的群組 數為1，2，和3。
第一個人說， 在接下來的2，接下來的3。
之後的人會說，1， 因為沒有一組4和
從那裡開始計數。
>> 您可以使用模 做同樣的事情。
這一次，組 組0，1，和2。
第一人稱，數 模3，是1。
2人模3 2。
3人模3為0。
4人模3給出1，依此 組環繞。
>> 所以，如果你把指數和模 該指數的最大尺寸，
結果將永遠不會大於或 的大小相等，這意味著你
可以增加索引 很多，只要你願意。
而且只要你模指數 一些數字，你不會得到一個數字
大於。
因此，我們有10人，而不是5， 他們都將得到分配給組
編號為0，1或2。
>> 嘗試將此應用到包裝在 關鍵字，除了排序
人成組號碼，你希​​望 關鍵字的索引，這樣就可以
得到正確的字符 轉移不超過
字符串的長度。
就這樣，你有你 VIGENERE的密碼。
我的名字是Zamyla，這是CS50。