[REPRODUCCIÓN DE MÚSICA] ZAMYLA CHAN: Vamos a poner en práctica Vigenére, un poco más cifrado seguro que el César. El texto simple se cifra usando una cadena en lugar de un entero. Cada letra del alfabeto en texto plano es desplazado en un letra en la palabra clave. En este ejemplo, la palabra clave ohai, O corresponde a un desplazamiento de 14, H a una cambio de 7; A, turno de 0, y yo un desplazamiento de 8. Si ha implementado con éxito su Cifrado César, va a ser un buen marco desde el que se puede implementar Vigenère. Como puede ver, la ejecución de un Vigenére sistema de cifrado con un solo carácter como un la palabra clave es la misma cosa como un cifrado César. Los mismos pasos se aplican a Vigenére como lo hicieron en el César. La palabra clave es la segunda línea de comandos argumento, por lo que accede a ellos con argv1. Luego hay que verificar que la clave palabra es de hecho todos los alfabético. Aquí es donde es alfa puede venir muy bien. Si usted tiene una palabra clave válida, se obtiene la la fuerza del usuario, y luego estás listo para cifrar. La fórmula cifrado Vigenère es similar a la fórmula César, excepto que ahora k se convierte en K subíndice j, que indica la letra j-ésimo de la palabra clave. Demos un paso a través de este proceso. Digamos que usted quiere enviar un mensaje a su accidente, me gustas, pero no lo hago quiere que todos sepan. Así que utiliza un cifrado de Vigenère con el panda de palabras clave, porque, bueno, también como pandas. La primera carta, yo, se desplazará por p, dando x, 15 cartas después que yo, porque 15 p es la 16a letra del alfabeto. La siguiente letra del texto claro es un espacio, de manera que no se movió. Y el índice de la palabra clave no va a cambiar. A continuación, la siguiente letra en texto plano es l, desplazado por una, lo que no cambia la letra de texto sin formato en absoluto, porque una es la letra 0th del alfabeto. El proceso continúa, el avance de la carácter palabra clave cada vez que hay un letra en el texto sin formato. Una vez que la última letra de la palabra clave es alcanzado, la palabra clave se envuelve alrededor y se desplaza a la siguiente llanura texto letra por p. X noh lvne. Qué romántico. Así que dado un carácter, ¿cómo convertir que en el correspondiente cambio de sistema de cifrado? Trate de comparar el ASCII valores al cambio. Tal vez usted puede encontrar una relación entre las letras y sus Etiquetas del uso de las matemáticas ASCII. ¿Se puede añadir o restar un carácter de otro para obtener que el resultado deseado? Recuerde que los cambios de mayúsculas y minúsculas son iguales. Así que tal vez usted tendrá que identificar a dos fórmulas similares para representar a la cambiar, uno para una mayúscula carácter de palabras clave, y uno para una minúscula. A continuación, recuerda que los avances de la palabra clave sólo si el carácter en texto plano es una carta y que el caso de la llanura texto debe ser preservado. Así que si nos fijamos en la fórmula para el Vigenére cambio, hay dos índice variables i y j. Uno hace un seguimiento de la posición en la llanura de texto, y la otra la posición en la palabra clave. Pero el texto sin formato puede ser mucho más largo que su palabra clave, en cuyo caso su índice de palabras clave debe envolver alrededor de la espalda al principio de la palabra clave. ¿Cómo se hace esto? Vamos a mirar hacia atrás en el módulo operador. Modulo se define es el resto de dividir dos números. Pero, ¿qué es una práctica real utilizar de módulo? Bueno, digamos que tiene un gran grupo de la gente, y lo que necesita para dividir en tres grupos. Una forma de dividir a la gente en grupos es tener que cuenten apagado. Usted numerar grupo grupos número 1, 2, y 3. La primera persona dirá 1, el próximo 2, el próximo 3. La persona que va a decir después de 1, porque no es un grupo 4, y el conteo comienza de nuevo desde allí. Usted puede utilizar módulo de hacer lo mismo. Esta vez, los grupos se ser grupo 0, 1, y 2. La primera persona, el número 1 módulo 3, es 1. Persona 2 módulo 3 es 2. Persona 3 módulo 3 es 0. Persona 4 módulo 3 da 1, y así los grupos pueden envolver alrededor. Así que si usted toma un índice y de módulo dicho índice por un tamaño máximo, la resultado nunca será mayor que o igual al tamaño, lo que significa que se puede aumentar el índice como tanto como desee. Y mientras que el índice de módulo por algún número, usted no conseguirá un número mayor que. Así que tenemos 10 personas en lugar de 5, y todos ellos se les asigna a los grupos número 0, 1, o 2. Trate de aplicar esto a envolver el palabra clave, pero en lugar de la clasificación la gente en números de grupo que desea que el Índice de la palabra clave, para que pueda conseguir el carácter adecuado para la cambiar sin exceder el longitud de la cadena. Con esto, usted tiene su Cifrado Vigenère. Mi nombre es Zamyla, y esto es CS50.