1 00:00:00,000 --> 00:00:10,101 >> [Música tocando] 2 00:00:10,101 --> 00:00:12,700 >> ZAMYLA CHAN: Imos aplicar Vigenère, algo máis 3 00:00:12,700 --> 00:00:14,710 asegurar a cifra de César. 4 00:00:14,710 --> 00:00:19,670 O texto simple é cifrada usando unha cadea en vez dun número enteiro. 5 00:00:19,670 --> 00:00:22,970 Cada carácter alfabético en texto sexa desviado por un 6 00:00:22,970 --> 00:00:24,450 letra na palabra clave. 7 00:00:24,450 --> 00:00:30,860 >> Neste exemplo, a palabra chave ohai, ó corresponde a un desvío de 14; H para unha 8 00:00:30,860 --> 00:00:36,910 cambiar de 7; A, cambio de 0, e I un desprazamento de 8. 9 00:00:36,910 --> 00:00:40,710 Se xa aplicou con éxito a súa Cifra de César, que vai ser un bo 10 00:00:40,710 --> 00:00:43,510 cadro a partir do cal pode aplicar Vigenère. 11 00:00:43,510 --> 00:00:47,140 Como podes ver, a execución dun Vigenère Cipher cun único personaxe como un 12 00:00:47,140 --> 00:00:51,830 contrasinal é o mesmo como unha cifra de César. 13 00:00:51,830 --> 00:00:55,170 >> Os mesmos pasos se aplica a Vigenère como fixeron en César. 14 00:00:55,170 --> 00:01:01,240 O contrasinal é a segunda liña de comandos argumento, para que acceder a ela con argv1. 15 00:01:01,240 --> 00:01:05,400 Entón tes que comprobar se a clave palabra é realmente todo alfabética. 16 00:01:05,400 --> 00:01:09,040 Aquí é onde está alpha pode vir a cadra. 17 00:01:09,040 --> 00:01:13,550 Se ten unha clave válida, comeza a forza do usuario e, a continuación, 18 00:01:13,550 --> 00:01:15,820 xa estás preparado para cifrar. 19 00:01:15,820 --> 00:01:20,840 >> A fórmula cifra de Vigenère é semellante fórmula César, só que agora k 20 00:01:20,840 --> 00:01:27,650 convértese en k índice j, indicando o j-th letra da palabra clave. 21 00:01:27,650 --> 00:01:29,640 Imos pasar por este proceso. 22 00:01:29,640 --> 00:01:34,060 Digamos que quería mandar unha mensaxe ao seu accidente, máis me gusta de ti, pero non 23 00:01:34,060 --> 00:01:35,190 quero que todos saiban. 24 00:01:35,190 --> 00:01:39,800 Entón usa unha cifra de Vigenère co contrasinal panda, porque, así, tamén se 25 00:01:39,800 --> 00:01:41,160 como pandas. 26 00:01:41,160 --> 00:01:47,140 >> A primeira letra, I, será desprazado por p, dando-x, 15 cartas despois de que eu, 27 00:01:47,140 --> 00:01:52,850 porque 15 p é o 16 letra do alfabeto. 28 00:01:52,850 --> 00:01:56,750 A seguinte letra do texto é un espazo, de xeito que non será desprazado. 29 00:01:56,750 --> 00:02:00,420 E o contido da palabra clave non vai cambiar. 30 00:02:00,420 --> 00:02:05,440 >> A continuación, a seguinte letra en texto simple é l, desviado por un, o que non se mova 31 00:02:05,440 --> 00:02:10,930 letra de texto simple en todo, porque a é 0 letra do alfabeto. 32 00:02:10,930 --> 00:02:14,980 O proceso continúa, o avance da carácter contrasinal cada vez que hai unha 33 00:02:14,980 --> 00:02:16,840 letra en texto sen formato. 34 00:02:16,840 --> 00:02:21,850 Xa que a última carta a palabra clave é alcanzar, o seu contrasinal implica e 35 00:02:21,850 --> 00:02:25,890 cambios para a próxima chaira letra texto p. 36 00:02:25,890 --> 00:02:27,170 X lvne noh. 37 00:02:27,170 --> 00:02:29,180 Como romántico. 38 00:02:29,180 --> 00:02:33,120 >> Así, dado un personaxe, como se converter en que o correspondente 39 00:02:33,120 --> 00:02:34,590 cifra quenda? 40 00:02:34,590 --> 00:02:37,870 Probe comparar o ASCII valores para o cambio. 41 00:02:37,870 --> 00:02:41,530 Tal vez lle atopar unha relación entre as cartas e os seus 42 00:02:41,530 --> 00:02:44,550 índice alfabético usando matemática ASCII. 43 00:02:44,550 --> 00:02:48,850 Pode engadir ou restar un carácter doutro para obter 44 00:02:48,850 --> 00:02:51,630 o resultado desexado? 45 00:02:51,630 --> 00:02:55,480 >> Lembre que os cambios para maiúsculas e minúsculas son as mesmas. 46 00:02:55,480 --> 00:02:59,510 Entón quizais vai ter identificar dous fórmulas semellantes para representar o 47 00:02:59,510 --> 00:03:03,570 cambio, un para unha letra maiúscula carácter contrasinal, e un 48 00:03:03,570 --> 00:03:06,510 a unha minúscula. 49 00:03:06,510 --> 00:03:10,630 >> Logo, lembre que o seu contrasinal avances só se o personaxe en 50 00:03:10,630 --> 00:03:13,520 texto é unha carta e que o caso da chaira 51 00:03:13,520 --> 00:03:16,020 texto debe ser preservada. 52 00:03:16,020 --> 00:03:20,280 Entón, se miramos a fórmula para o Desprazamento Vigenère, existen dúas índice 53 00:03:20,280 --> 00:03:22,880 variables, i e j. 54 00:03:22,880 --> 00:03:26,795 Un mantén o control da situación na chaira texto, e o outro a posición 55 00:03:26,795 --> 00:03:27,910 a palabra clave. 56 00:03:27,910 --> 00:03:32,960 Pero o texto simple pode ser moito maior que a súa contrasinal, caso en que a súa 57 00:03:32,960 --> 00:03:38,290 Índice de palabras clave que participa en torno de volta ao comezo dunha palabra clave. 58 00:03:38,290 --> 00:03:39,870 >> Como fai iso? 59 00:03:39,870 --> 00:03:43,740 Imos mirar para atrás, o operador módulo. 60 00:03:43,740 --> 00:03:47,280 Modulo defínese é o resto da división de dous números. 61 00:03:47,280 --> 00:03:50,680 Pero o que é unha práctica real uso de módulo? 62 00:03:50,680 --> 00:03:54,340 >> Ben, digamos que ten un gran grupo de persoas, e ten que dividir en 63 00:03:54,340 --> 00:03:55,100 tres grupos. 64 00:03:55,100 --> 00:03:59,500 Un xeito de dividir á xente en grupos é telos contar off. 65 00:03:59,500 --> 00:04:03,520 É o número do grupo de grupos número 1, 2, e 3. 66 00:04:03,520 --> 00:04:08,510 A primeira persoa vai dicir un, no próximo 2, o próximo 3. 67 00:04:08,510 --> 00:04:12,860 A persoa que vai dicir despois de 1, por que non é un grupo 4, e o 68 00:04:12,860 --> 00:04:15,880 conta comeza a partir de aí. 69 00:04:15,880 --> 00:04:18,209 >> Pode utilizar o módulo de facer o mesmo. 70 00:04:18,209 --> 00:04:22,680 Esta vez, os grupos serán ser o grupo 0, 1 e 2. 71 00:04:22,680 --> 00:04:26,960 A primeira persoa, número 1 módulo 3, é 1. 72 00:04:26,960 --> 00:04:29,830 Persoa 2 módulo 3 é 2. 73 00:04:29,830 --> 00:04:32,460 Persoa 3 módulo 3 é 0. 74 00:04:32,460 --> 00:04:38,470 Persoa 4 modulo 3 dá 1, e así os grupos pode implicar en torno. 75 00:04:38,470 --> 00:04:44,700 >> Entón, se tomar un índice e modulo que por un índice de tamaño máximo, o 76 00:04:44,700 --> 00:04:49,820 resultado nunca será maior que ou igual ao tamaño, o que significa que 77 00:04:49,820 --> 00:04:52,330 poden aumentar o índice de tanto como desexa. 78 00:04:52,330 --> 00:04:57,400 E mentres Modulo o índice algún número, non vai obter un número 79 00:04:57,400 --> 00:04:58,510 maior que iso. 80 00:04:58,510 --> 00:05:04,500 Polo tanto, temos 10 persoas en vez de 5, e eles todos son asignados a grupos 81 00:05:04,500 --> 00:05:07,480 número 0, 1 ou 2. 82 00:05:07,480 --> 00:05:11,680 >> Probe aplicar isto para envolver todo o contrasinal, excepto no canto de selección 83 00:05:11,680 --> 00:05:16,050 persoas en números de grupo quere que o índice de contrasinal para que poida 84 00:05:16,050 --> 00:05:19,080 O personaxe axeitado para o desprazar sen superar o 85 00:05:19,080 --> 00:05:21,836 lonxitude da corda. 86 00:05:21,836 --> 00:05:24,790 Con iso, ten o seu Vigenère cifrado. 87 00:05:24,790 --> 00:05:27,790 O meu nome é Zamyla, e este é o CS50. 88 00:05:27,790 --> 00:05:32,566