>> ROB: Hi, მე რობ, და მოდით decipher Vigenere პროგრამა.
ასე რომ, პირველი, რაც უნდა გავაკეთოთ არის მიიღოს დარწმუნებული პროფაილი შევიდა, რასაც ველოდით
მათ ბრძანებათა ზოლს.
ასე რომ, თუ argc არ არის 2 ეს ნიშნავს, რომ არც მომხმარებელს არ შესულხართ სიმებიანი ჩვენ
მინდა იყოს გამოყენებით, როგორც ჩვენი Encrypting string, ან მათ
შევიდა ძალიან ბევრი რამ.
და ჩვენ არ ვიცით, რა უნდა გააკეთოს იმ სხვა რამ.
>> ასე რომ, ჩვენ ვეუბნებით მათ, რაც მათ უნდა შევიდნენ.
და ჩვენ დაბრუნდება.
ახლა, ვთქვათ, რომ argc 2, ჩვენ შეგვიძლია გავაგრძელოთ დანარჩენი პროგრამა.
>> ჩვენ Alias ​​სახელი argv [1]
თარგმნეს ცვლადი სიტყვით.
ასე, რომ ჩვენ არ უნდა სახელწოდების გამოყენება argv [1]
მთელი დანარჩენი პროგრამა.
და იქნებ ჩვენ დაგვავიწყდეს, თუ რა ეს იმას ნიშნავს, და ასე შემდეგ.
საკვანძო სიტყვა არის ბევრად გავალამაზოთ სახელი.
და ჩვენ დაუყოვნებლივ დაიბრუნოს ხანგრძლივობა ჩვენი სიტყვით უფლება აქ.
>> OK, ასე რომ, ახლა ჩვენ გვინდა, რომ შეამოწმოს, რომ ჩვენი სიტყვით არის რეალურად მოქმედებს.
სიტყვით ვიყენებთ დაშიფვრა strings უნდა იყოს მხოლოდ ანბანური
სიმბოლო.
თუ მომხმარებლის შევიდნენ არასამთავრობო ანბანური პერსონაჟი, უნდა ითქვას, სიტყვით
უნდა შეიცავდეს მხოლოდ მეშვეობით Z და შემდეგ დაბრუნდნენ.
ასე რომ, ამ for loop iterates მეტი ყველა გმირები ჩვენი სიტყვით, შემოწმების
იმ შემთხვევაში, თუ ერთი არ არის ანბანური შემდეგ ჩვენ უნდა ამობეჭდოთ, რომ გაფრთხილება.
>> ახლა, როდესაც ჩვენ კიდევ ამ ეტაპზე, ჩვენ ვიცით, რომ სიმებიანი უნდა იყოს სწორი.
სიტყვით უნდა იყოს სწორი.
და ახლა ჩვენ უნდა მიიღოს გზავნილი მომხმარებელს, რომ მათ სურთ, რომ
დაშიფვრა, რომ გასაღები ფრაზა.
ასე რომ მიიღოს, რომ გაგზავნა, ჩვენ გვაქვს გავაკეთოთ ხოლო loop რომ აპირებს
მუდმივად მიიღოს სიმებიანი საწყისი მომხმარებელი სანამ ისინი შეიყვანოთ სწორი string.
>> გრძელდება, აქ ვხედავთ ამ ცვლადი, int nun_letters_seen.
ჩვენ დავინახავთ, თუ რატომ გვჭირდება რომ მეორე.
მაგრამ ამ for loop აპირებს iterate ეხლა i უდრის 0 ყველა გზა მდე i
უდრის n, რაც იმას ნიშნავს, რომ ჩვენ iterating ყველა შესაძლო
გმირები ჩვენს გაგზავნა.
იმის გამო, რომ ჩვენ გვინდა, რომ დაშიფვრა ყველა გმირები ჩვენს გაგზავნა.
ასე რომ შეამჩნია გავაკეთოთ, თუ (isalphamessage [I], იმიტომ, რომ ჩვენ არ გვინდა, რომ დაშიფვრა
გმირები, რომლებიც არ არიან ანბანური.
თუ არსებობს სიმბოლოები, ფართები, ან ციფრები, ჩვენ არ
გსურთ დაშიფვრა იმ.
>> ახლა, ვთქვათ, რომ ეს არის ანბანური, ჩვენ პირველად მინდა გაერკვნენ, რა ჩვენ
ნამდვილად გინდათ დაშიფროთ გაგზავნა გამოყენებით.
ასე რომ, რას ვგულისხმობ მიერ რომ?
>> მოდით ვივარაუდოთ, რომ გასაღები ფრაზა მომხმარებლის შემოვიდა იყო abc.
ის, რაც ჩვენ გამოყენებით დაშიფვრა.
ახლა კი, გულუბრყვილოდ, ჩვენ ვფიქრობთ, ეს იმას ნიშნავს რომ ჩვენ გვინდა, რომ დაშიფვრა პირველი ხასიათი
ჩვენი გზავნილი 0, რადგან საშუალება მოძრავი ხასიათი 0.
>> ჩვენ გვინდა, რომ დაშიფვრა მეორე სიმბოლო 1, მესამე ხასიათი 2,
მეოთხე ხასიათი: 0, მეხუთე 1, მეექვსე 2, და ასე შემდეგ.
მაგრამ გახსოვდეთ, რომ ჩვენ გვინდა გამოტოვოთ ფართები და სიმბოლოები და ციფრები.
ეს ნიშნავს, რომ თუ მომხმარებელი შევიდნენ Hello World როგორც გაგზავნა
რომ მათ სურთ დაშიფვრა, მაშინ ჩვენ გვინდა, რომ დაშიფვრა თ 0
შესაბამისი, ელექტრონული 1, ლ by 2 ლ: 0, o 1.
ჩვენ გვინდა, რომ გამოტოვეთ ინტერვალი, დაშიფრული w 2, o: 0, 1, 2, 0.
ასე რომ შეამჩნია, თუ ჩვენ არ გამოტოვებენ სივრცეში, მაშინ ჩვენ არ დაშიფრული
w 0 და დასრულდა არასწორი string.
>> OK, ეს არის ის, რაც ჩვენ გვჭირდება ცვლადი num_letters_seen ამისთვის.
თუ ჩვენ უბრალოდ აპირებს დაშიფვრა გამოყენებით ეს მეთოდი, რომელიც არ გამოტოვოთ
სიმბოლოები, ფართები, და ნომრები, მაშინ ჩვენ შეიძლება უბრალოდ გამოიყენოთ ცვლადი i, რაც
ინდექსი შევიდა ჩვენი მთავარი ფრაზა ერთად.
ჩვენ უნდა გამოვიყენოთ num_letters_seen შენარჩუნება სიმღერა ფაქტობრივი ადგილი
საკვანძო ფრაზა, რომ ჩვენ გვინდა ინდექსი.
ასე რომ აქ, თუ სიტყვით, ჩვენ გვაქვს, თუ num_letter_seen mod keyword_length, ასე რომ,
რატომ უნდა mod სიტყვით სიგრძე?
>> ასევე, hello world იყო კარგი მაგალითი.
იმ შემთხვევაში, თუ სიტყვით იყო abc, მაშინ ჩვენ გვჭირდება მუდმივად დაშიფვრა მიერ მაშინ b
მაშინ c, მაშინ გადაიტანოთ უკან გარშემო, a, b, c, a, b, c.
ამიტომ, ჩვენ უნდა mod სიტყვით ხანგრძლივობა იმისათვის, რომ გადაიტანოთ უკან გარშემო.
>> ასე რომ, თუ ეს არის ზედა წერილი, მაშინ ჩვენ გვინდა დაშიფვრა მიერ
პოზიცია, რომ წერილი ანბანი, რომელიც ჩვენ მხოლოდ
გამოკლება out კაპიტალური ა და ანალოგიურად, რადგან ამას წერილები, ჩვენ
შეგიძლიათ მიიღოთ გასაღები, რომ ჩვენ გვინდა მიერ გამოკლება out ამას.
ასე რომ, მიუხედავად იმისა, რომ წერილი გასაღები ფრაზა იყო დედაქალაქში, ან
ამას წერილში, ჩვენ ვაპირებთ დაშიფვრა და იგივე თანხა.
>> არის, რომ ჩვენ გვაქვს ჩვენი გასაღები, ჩვენ ვხედავთ, აქ, იმ შემთხვევაში, თუ გაგზავნა i არის ზედა
ხასიათი, მაშინ ჩვენ გვინდა გამოვთვალოთ პოზიცია ანბანი რომ
ხასიათი, დაამატოთ ჩვენი მთავარი ის, გადაიტანოთ უკან გარშემო ისე, რომ თუ წავედით წარსულში
z ჩვენ დავუბრუნდებით a, b, c, და ასე შემდეგ.
მაშინ, საბოლოოდ, დაამატოთ უკან კაპიტალის A. So ჩვენ გადაეტანა ისევ [? ASCII?]
სპექტრი ამ სიმბოლოების ნაცვლად რიცხვითი პოზიცია ანბანი
ამ სიმბოლოს.
>> და ჩვენ გავაკეთებთ იგივე ქვედა სიმბოლო.
გარდა ჩვენ გვინდა გამოვაკლოთ out ამას და დაამატოთ ეს უკან იმ
ბოლოს, მხედრულ.
გაითვალისწინეთ, რომ num_letter_seen მხოლოდ incremented თუ გაგზავნა ვიყავი
ანბანური.
ეს არის, თუ როგორ გამოტოვოთ ფართები, სიმბოლოები და ნომრები ჩვენი გასაღები ფრაზა, რადგან
num_letter_seen არის ის, რაც ჩვენ გამოყენებით ინდექსი ჩვენი სიტყვით.
>> და ბოლოს, ბოლოს და ბოლოს, ახლა, რომ გაგზავნა i გაიშიფრა, ჩვენ
ამობეჭდოთ გაგზავნა i.
და რომ არის ის.
ჩემი სახელი არის რობ.
და ეს არის Vigenere.
>> [მუსიკის დაკვრა]