>> ROB: สวัสดีครับผมร็อบและให้ถอดรหัส โปรแกรม Vigenere
ดังนั้นสิ่งแรกที่เราต้องทำคือการให้ แน่ใจว่าผู้ใช้ป้อนสิ่งที่เราคาดหวัง
พวกเขาไปที่บรรทัดคำสั่ง
ดังนั้นถ้า argc ไม่ได้เป็น 2 นั่นหมายความว่าอย่างใดอย่างหนึ่ง ผู้ใช้ไม่ได้ป้อนสตริงเรา
ต้องการที่จะใช้เป็นเข้ารหัสของเรา สตริงหรือพวกเขา
ป้อนสิ่งที่มากเกินไป
และเราไม่ทราบว่าจะทำอย่างไร กับสิ่งอื่น ๆ เหล่านั้น
>> ดังนั้นเราจึงบอกพวกเขาสิ่งที่พวกเขา ควรจะได้เข้ามา
และเรากลับ
ตอนนี้สมมติว่า argc คือ 2, ที่เราสามารถทำได้ ดำเนินการต่อกับส่วนที่เหลือของโปรแกรม
>> เรานามแฝงชื่อ argv [1]
เป็นตัวแปรหลัก
เพื่อที่เราจะได้ไม่ต้อง ใช้ชื่อ argv [1]
ตลอดเวลาที่เหลือของโปรแกรม
และบางทีเราจะลืมสิ่งที่ นั่นหมายความว่าและอื่น ๆ
คำหลักที่เป็นชื่อที่ดีกว่ามาก
ทันทีและเราจะคว้าความยาว ของคำหลักของเราที่นี่
>> ตกลงดังนั้นตอนนี้เราต้องการที่จะตรวจสอบว่า คำหลักของเราเป็นจริงที่ถูกต้อง
คำหลักที่เราใช้ในการเข้ารหัสสตริง ก็ควรจะเป็นตัวอักษร
ตัวอักษร
ถ้าผู้ใช้ป้อนตัวอักษรที่ไม่- ตัวละครที่เราควรจะพูดคำหลัก
ต้องมีเพียงผ่าน Z และการกลับมาแล้ว
ดังนั้นสำหรับการคำนวณซ้ำวนไปทั่ว ตัวอักษรของคำหลักของเราในการตรวจสอบ
ว่าหากไม่ได้เป็นตัวอักษรแล้ว เราต้องพิมพ์คำเตือนว่า
>> ตอนนี้เมื่อเราได้รับมาถึงจุดนี้เรารู้ว่า ที่สตริงจะต้องถูกต้อง
คำหลักที่จะต้องถูกต้อง
และตอนนี้เราต้องการที่จะได้รับข้อความจาก ผู้ใช้ที่พวกเขาต้องการให้เรา
เข้ารหัสด้วยวลีที่สำคัญที่
เพื่อที่จะได้รับข้อความที่เรามี ทำในขณะที่วงที่จะ
อย่างต่อเนื่องได้รับสายจากผู้ใช้ จนกว่าพวกเขาจะใส่ชุดตัวอักษรที่ถูกต้อง
>> อย่างต่อเนื่องที่เราเห็นที่นี่ตัวแปรนี้ int nun_letters_seen
เราจะเห็นว่าทำไมเราต้อง ว่าในครั้งที่สอง
แต่สำหรับวงนี้จะไปย้ำ จาก i = 0 ตลอดทางขึ้นไปยังฉัน
เท่ากับ n ซึ่งหมายความว่าเรากำลัง iterating กว่าเป็นไปได้ทั้งหมด
ตัวอักษรในข้อความของเรา
เพราะเราต้องการที่จะเข้ารหัสทั้งหมดของ ตัวอักษรในข้อความของเรา
เพื่อแจ้งให้ทราบที่เราทำถ้า (isalphamessage [I] เพราะเราไม่ต้องการที่จะเข้ารหัส
ตัวละครที่ไม่ได้เรียงตามตัวอักษร
หากมีสัญลักษณ์ช่องว่าง หรือตัวเลขที่เราทำไม่ได้
ต้องการเข้ารหัสที่
>> ตอนนี้สมมติว่ามันเป็นตัวอักษร ครั้งแรกที่เราต้องการที่จะคิดออกสิ่งที่เรา
จริงต้องการการเข้ารหัส ข้อความโดยใช้
ดังนั้นสิ่งที่ฉันหมายความโดยที่?
>> สมมติว่าวลีที่สำคัญ ผู้ใช้ป้อนเป็น abc
นั่นคือสิ่งที่เรากำลังใช้ในการเข้ารหัส
ตอนนี้อย่างไร้เดียงสาที่เราคิดว่านั่นหมายความว่า เราต้องการที่จะเข้ารหัสตัวอักษรตัวแรก
ข้อความของเราโดย 0 หมายถึงตั้งแต่ หมุนตัวโดย 0
>> เราต้องการที่จะเข้ารหัสอักขระตัวที่สอง 1 ตัวที่สามด้วย 2
ตัวละครที่สี่โดย 0 ห้า โดยที่ 1 ที่หกโดย 2 และอื่น ๆ
แต่จำไว้ว่าเราต้องการที่จะข้าม ช่องว่างและสัญลักษณ์และตัวเลข
ซึ่งหมายความว่าหากผู้ใช้เข้ามา hello โลกเป็นข้อความ
ว่าพวกเขาต้องการที่จะเข้ารหัสแล้ว เราต้องการที่จะเข้ารหัสชั่วโมงโดย 0
สอดคล้องกับการส่งอีเมล์โดยที่ 1 ลิตรโดย 2 ลิตรโดย 0, o 1
เราต้องการที่จะข้ามพื้นที่ที่มีการเข้ารหัส กว้าง 2, o โดย 0, 1, 2, 0
เพื่อแจ้งให้ทราบว่าเราไม่ได้ข้าม พื้นที่แล้วเราจะได้รับการเข้ารหัส
กว้างโดย 0 และจบลงด้วย สตริงที่ไม่ถูกต้อง
>> ตกลงนี้คือสิ่งที่เราต้องมีตัวแปร num_letters_seen เพื่อ
ถ้าเราเพียงแค่จะใช้ในการเข้ารหัส วิธีนี้ที่ไม่ได้ข้าม
สัญลักษณ์ช่องว่างและตัวเลขแล้วเรา ก็สามารถใช้ตัวแปร i เป็นสิ่งที่
ดัชนีลงไปในวลีที่สำคัญของเราด้วย
เราจำเป็นต้องใช้เพื่อให้ num_letters_seen ติดตามสถานที่จริงใน
วลีที่สำคัญที่เราต้องการทำดัชนี
ดังนั้นที่นี่หากคำหลักที่เรามีถ้า num_letter_seen keyword_length mod ดังนั้น
ทำไมเราต้องพอควร โดยความยาวของคำหลัก?
>> ดีโลก hello เป็นตัวอย่างที่ดี
หากคำหลักเป็น abc แล้วเราต้อง ในการเข้ารหัสอย่างต่อเนื่องโดยจากนั้นข
แล้วคแล้วห่อกลับไปรอบ ๆ , ข, ค,, B, C
ดังนั้นเราจึงจำเป็นในการพอควรตามความยาวของคำหลัก เพื่อที่จะตัดกลับไปรอบ ๆ
>> ดังนั้นถ้านี้เป็นอักษรตัวพิมพ์ใหญ่, แล้วเราต้องการที่จะเข้ารหัสโดย
ตำแหน่งของตัวอักษรในตัวอักษรที่ ที่เราได้รับโดยเพียงแค่
ลบออกทุนเอและ ในทำนองเดียวกันสำหรับตัวอักษรตัวพิมพ์เล็กเรา
จะได้รับที่สำคัญที่เราต้องการด้วย ลบออกตัวพิมพ์เล็ก
ดังนั้นไม่ว่าจะเป็นตัวอักษร ในวลีที่สำคัญเป็นเมืองหลวงหรือ
อักษรตัวพิมพ์เล็กเรากำลังจะ เข้ารหัสด้วยจำนวนเดียวกัน
>> ตอนนี้เรามีหลักของเราเราดูที่นี่ ว่าถ้าข้อความที่ฉันเป็นตัวพิมพ์ใหญ่
ตัวละครแล้วเราต้องการที่จะคำนวณ ตำแหน่งในตัวอักษรที่
ตัวละครเพิ่มที่สำคัญของเราไปห่อกลับ รอบเพื่อที่ว่าถ้าเราเดินผ่านมา
ซีเรากลับไป, ข, คไปและอื่น ๆ
แล้วในที่สุดกลับเพิ่มทุน A. ดังนั้น เราเปลี่ยนกลับเข้ามา [? ascii?]
ช่วงของตัวละครเหล่านี้แทน ตำแหน่งตัวเลขในตัวอักษร
ของตัวละครเหล่านี้
>> และเราทำในสิ่งที่เหมือนกันสำหรับ ตัวอักษรกรณีที่ต่ำกว่า
ยกเว้นเราต้องการที่จะลบออกตัวพิมพ์เล็ก และเพิ่มกลับไปใน
สิ้นสุดพิมพ์เล็ก
ขอให้สังเกต num_letter_seen ที่เป็นเพียง เพิ่มขึ้นถ้าข้อความผม
ตามตัวอักษร
นี่คือวิธีการที่เราข้ามช่องว่างสัญลักษณ์และ ตัวเลขในวลีที่สำคัญของเราตั้งแต่
num_letter_seen คือสิ่งที่เรากำลังใช้ ดัชนีเป็นคำหลักของเรา
>> ในที่สุดในที่สุดตอนนี้ข้อความที่ ฉันได้รับการเข้ารหัสเรา
พิมพ์ข้อความฉัน
และที่มัน
ชื่อของฉันคือร็อบ
และนี่คือ Vigenere
>> [เล่นดนตรี]