ROB: Salut, je suis Rob, et laisse de déchiffrer le programme de Vigenère. Donc la première chose que nous devons faire est de faire que l'utilisateur est entré ce que nous attendions leur à la ligne de commande. Donc, si argc n'est pas 2 que ça veut dire l'utilisateur n'a pas le nous de chaîne veulent être en utilisant notre cryptage chaîne, ou ils entré trop de choses. Et nous ne savons pas quoi faire avec ces autres choses. Alors nous leur disons ce qu'ils aurait dû entrer. Et nous reviendrons. Maintenant, en supposant que argc était de 2, nous pouvons continuer avec le reste du programme. Nous alias le nom de argv [1] dans le mot variable. Alors que nous n'avons pas à utiliser le nom argv [1] dans tout le reste du programme. Et peut-être que nous allons oublier ce cela signifie et ainsi de suite. Mot-clé est un nom beaucoup plus agréable. Et nous saisissons immédiatement la longueur de notre mot clé ici. OK, maintenant nous voulons vérifier que notre mot-clé est en fait valable. Le mot-clé que nous utilisons pour crypter les chaînes devrait juste être alphabétique caractères. Si l'utilisateur a entré non-alphabétique caractères, nous devrions dire, mot-clé ne doit contenir A à Z et revenez ensuite. Donc, cette boucle for sur tout caractères de notre mot vérifiant que si l'on n'est pas alphabétique, puis nous devons imprimer cet avertissement. Maintenant, une fois que nous arrivons à ce point, nous savons que la chaîne doit être correcte. Le mot-clé doit être correcte. Et maintenant, nous devons faire passer le message de l'utilisateur qu'ils nous veulent crypter avec cette phrase-clé. Donc, pour faire passer ce message, nous avons une faire boucle while qui va continu obtenir une chaîne de l'utilisateur jusqu'à ce qu'ils entrent dans une chaîne valide. Poursuivant, nous voyons ici cette variable, int nun_letters_seen. Nous verrons pourquoi nous avons besoin que dans une seconde. Mais cette boucle va parcourir de i est égal à 0 tout le chemin jusqu'à i est égal à N, ce qui signifie que nous itération plus possible caractères dans notre message. Parce que nous voulons pour crypter tous les personnages de notre message. Ainsi constate-nous si (isalphamessage [I], parce que nous ne voulons pas crypter caractères qui ne sont pas alphabétique. Si il ya des symboles, des espaces, ou des chiffres, nous ne faisons pas de chiffrer celles-ci. Maintenant, en supposant qu'il est alphabétique, nous voulons d'abord comprendre ce que nous voulez réellement chiffrer le message à l'aide. Alors qu'est-ce que je veux dire par là? Supposons que la phrase clé l'utilisateur d'entrer était abc. C'est ce que nous allons utiliser pour chiffrer. Maintenant, naïvement, nous pensons que cela signifie que nous voulons chiffrer le premier caractère de notre message par 0, car un moyen faire tourner le caractère par 0. Nous voulons chiffrer le deuxième caractère par 1, troisième caractère par 2, le quatrième caractère par 0, le cinquième par 1, 2 par la sixième, et ainsi de suite. Mais rappelez-vous, que nous voulons aller espaces et symboles et des chiffres. Cela signifie que si l'utilisateur avait entré Bonjour tout le monde que le message qu'ils veulent crypter, puis nous voulons chiffrer le h par 0 correspondant à l'une, par l'e 1, dans la l par 2, le l par 0, le o par 1. Nous voulons aller de l'espace, chiffré w par le 2, le o par 0, 1, 2, 0. Donc remarquer, si nous n'avions pas sauté le espace, puis nous aurait chiffré w par 0 et terminé avec la chaîne incorrecte. OK, c'est ce que nous avons besoin de la variable num_letters_seen pour. Si nous allions seulement pour chiffrer l'aide Cette méthode, qui ne saute pas symboles, des espaces et des chiffres, alors nous pouvais utiliser la variable i que ce à l'index dans notre phrase clé avec. Nous devons utiliser num_letters_seen à garder piste de la place réelle dans le phrase clé que nous voulons à l'index. Donc ici, si le mot-clé, nous avons, si num_letter_seen keyword_length mod, donc pourquoi avons-nous besoin de mod par la longueur du mot-clé? Eh bien, bonjour le monde est un bon exemple. Si le mot-clé était abc, nous devons pour crypter en continu par un puis b alors c, puis enveloppez retourna, a, b, c, a, b, c. Nous avons donc besoin de mod par la longueur du mot-clé afin de conclure en arrière autour. Donc, si cela est une lettre majuscule, alors nous voulons chiffrer par le position de cette lettre de l'alphabet, que nous obtenons par tout soustrayant grand A. Et de même, pour les lettres minuscules, nous peut obtenir la clé que nous voulons par soustrayant minuscules un. Ainsi, indépendamment du fait que la lettre dans la phrase clé est un capital ou lettre minuscule, nous allons crypter par la même quantité. Maintenant que nous avons notre clé, nous voyons ici, que si le message i est une majuscule caractère, alors nous voulons calculer le position dans l'alphabet de cette caractère, ajouter notre touche à elle, l'envelopper de retour autour de sorte que si nous sommes passés d'une z nous revenons à a, b, c, et ainsi de suite. Puis, enfin, rajouter du capital A. Alors nous passons de nouveau dans la [? Ascii?] gamme de ces personnages à la place de la position numérique dans l'alphabet de ces caractères. Et nous faisons la même chose pour Caractères minuscules. Sauf que nous voulons soustraire à minuscules un et le rajouter dans la fin, minuscules un. Notez que num_letter_seen n'est incrémenté si le message que j'étais alphabétique. C'est ainsi que nous sautons espaces, symboles, et numéros dans notre phrase-clé, depuis num_letter_seen est ce que nous utilisons à l'index dans notre clé. Enfin, à la fin, maintenant ce message i a été chiffré, nous j'imprime un message i. Et c'est tout. Mon nom est Rob. Et c'est Vigenère. [MUSIQUE JEU]