[მუსიკალური სათამაშო] ZAMYLA CHAN: მოდით განახორციელოს Vigenere, ოდნავ მეტი უზრუნველყოს შიფრი ვიდრე Caesar. ძირითადი ტექსტი არის enciphered გამოყენებით სიმებიანი ნაცვლად რიცხვი. თითოეული ანბანურ პერსონაჟი ძირითადი ტექსტი არის გადაინაცვლებს მიერ წერილი სიტყვით. ამ მაგალითში სიტყვით ohai, O შეესაბამება ცვლის 14; H to ცვლის 7;, ცვლის 0, და მე ცვლის 8. თუ თქვენ წარმატებით განხორციელდა თქვენი კეისრის კოდი, ეს იქნება ლამაზი ფარგლებში, რომლის მეშვეობითაც თქვენ შეიძლება განახორციელოს Vigenere. როგორც ხედავთ, გაშვებული Vigenere შიფრი ერთი ხასიათი, როგორც სიტყვით ერთი და იგივეა როგორც კეისრის კოდი. იგივე ნაბიჯები ვრცელდება Vigenere როგორც ისინი მსოფლიოს Caesar. სიტყვით არის მეორე ბრძანება ხაზი არგუმენტი, ასე რომ თქვენ წვდომის იგი argv1. მაშინ თქვენ უნდა გადაამოწმონ, რომ გასაღები სიტყვა არის მართლაც ყველა ანბანურ. აქ არის, სადაც არის alpha შეიძლება მოდის მოსახერხებელი. თუ თქვენ გაქვთ სწორი სიტყვით, თქვენ ძალა შესახებ, შემდეგ კი მზად ხართ encipher. Vigenere შიფრი ფორმულა მსგავსი to Caesar ფორმულა, გარდა ახლა ლ ხდება k სიახლეები j, რაც მიუთითებს j-th წერილი სიტყვით. მოდით ნაბიჯ მეშვეობით ამ პროცესს. ამბობენ, რომ თქვენ სურდა გაგზავნას გაგზავნა თქვენს ავარიის, მომწონს, მაგრამ არა მინდა ყველამ იცოდეს. ასე, რომ თქვენ გამოიყენოთ Vigenere შიფრი ერთად სიტყვით panda, რადგან, კარგად, თქვენ ასევე მინდა pandas. პირველი წერილი, I, გადაინაცვლებს by ჟ, რაც x, 15 ასო შემდეგ მე, იმიტომ, რომ 15 საათამდე მე -16 წერილი ანბანი. მომდევნო ასო ძირითადი ტექსტი არის სივრცეში, ისე, რომ არ იქნება გადაინაცვლებს. ხოლო ინდექსი სიტყვით არ შეიცვლება. მაშინ მომდევნო წერილში მარტივი ტექსტის არის ლ გადაინაცვლებს მიერ, რომელიც არ გადაიტანოს ძირითადი ტექსტის წერილი ყველა, რადგან არის 0th წერილი ანბანი. პროცესი გრძელდება, მიიწევს სიტყვით ხასიათი ყოველ ჯერზე არსებობს წერილი ძირითადი ტექსტი. მას შემდეგ, რაც ბოლო წერილი სიტყვით არის მიღწეული, სიტყვით დაასრულა გარშემო და ძვრები მომდევნო ბარის ტექსტის წერილი ჟ. X lvne noh. როგორ რომანტიული. ასე რომ, მოცემულ ხასიათი, როგორ გარდაქმნას რომ შევიდა შესაბამისი შიფრი ცვლა? სცადეთ შედარებით ASCII ღირებულებები ცვლის. იქნებ შეგიძლიათ ურთიერთობისათვის შორის წერილები და მათი ანბანური მაჩვენებელი გამოყენებით ASCII მათემატიკის. შეგიძლიათ დაამატოთ ან სხვაობა ერთი ხასიათი მეორე მისაღებად თქვენ სასურველ შედეგს? გახსოვდეთ, რომ ძვრები for ზედა და ამას ასო იგივეა. ასე რომ, შესაძლოა, თქვენ უნდა იდენტიფიცირება ორი მსგავსი ფორმულები წარმოადგენს ცვლა, ერთი ზედა სიტყვით ხასიათი და ერთი ამისთვის ამას ერთი. შემდეგი გახსოვდეთ, რომ სიტყვით მიღწევების მხოლოდ იმ შემთხვევაში თუ პერსონაჟი ძირითადი ტექსტი არის წერილი და რომ იმ შემთხვევაში, ბარის ტექსტი უნდა იყოს დაცული. ასე რომ, თუ დავაკვირდებით ფორმულა Vigenere ცვლა, არსებობს ორი ინდექსი ცვლადები, i და j. ერთი ინახება პოზიცია მარტივი ტექსტი და სხვა თანამდებობაზე ამ სიტყვით. მაგრამ თქვენი ძირითადი ტექსტი შეიძლება იყოს ბევრად უფრო ვიდრე თქვენი სიტყვით, ამ შემთხვევაში თქვენი სიტყვით ინდექსი უნდა გადაიტანოთ გარშემო უკან დასაწყისში სიტყვით. როგორ გავაკეთოთ ეს? მოდით ვიხსენებთ modulo ოპერატორს. Modulo განისაზღვრება არის დარჩენილი გამყოფი ორი ნომერი. მაგრამ რა არის რეალური პრაქტიკული გამოყენება modulo? ისე, ამბობენ, რომ თქვენ გაქვთ დიდი ჯგუფი ადამიანი, და თქვენ უნდა დაყოს შევიდა სამ ჯგუფად. ერთი გზა დაყოფის ადამიანების ჯგუფები არის იმისათვის, რომ მათ ითვლიან მოედანი. თქვენ რაოდენობის ჯგუფებს ჯგუფი ნომერი 1, 2 და 3. პირველი პირი იტყვის 1, მომდევნო 2, მომდევნო 3. პირი ამის შემდეგ იტყვის 1, რადგან არ არის ჯგუფი 4, და რაოდენობა იწყება მეტი იქიდან. თქვენ შეგიძლიათ გამოიყენოთ modulo to გავაკეთოთ იგივე. ამჯერად, ჯგუფები იყოს ჯგუფური 0, 1 და 2. პირველი პირი, ნომერი 1 modulo 3, არის 1. პირი 2 modulo 3 2. პირი 3 modulo 3 0. პირი 4 modulo 3 აძლევს 1, და ა.შ. ჯგუფები შეიძლება გადაიტანოთ გარშემო. ასე რომ, თუ შენ ინდექსი და modulo რომ მაჩვენებელი მაქსიმალური ზომა, შედეგი არასოდეს იქნება მეტია ან თანაბარი ზომის, რაც იმას ნიშნავს, რომ თქვენ გაზრდის მაჩვენებელი, როგორც რამდენიც გსურთ. და რადგან თქვენ modulo მაჩვენებელი ზოგიერთი ნომერზე, თქვენ ვერ მიიღებენ ნომერი უფრო დიდი ვიდრე. ასე რომ, ჩვენ გვაქვს 10 ადამიანი ნაცვლად 5 და ისინი ყველა მივიღებთ ენიჭება ჯგუფები ნომერი 0, 1, ან 2. სცადეთ გამოიყენოს ეს უნდა შეფუთვა მეტი სიტყვით, გარდა ნაცვლად დახარისხება ადამიანების ჯგუფს ნომრები გსურთ ინდექსის სიტყვით, ასე რომ შეგიძლიათ მიიღოს უფლება ხასიათი გადაიტანოს გარეშე აღემატება ხანგრძლივობა სიმებიანი. ამასთან, თქვენ თქვენი Vigenere შიფრი. ჩემი სახელი Zamyla, და ეს არის CS50.