[Nagpe-play ng musika] ZAMYLA Chan: Sabihin ipatupad Vigenere, isang bahagyang higit pa secure ang cipher kaysa Caesar. Ang plain text ay enciphered paggamit isang string sa halip na isang integer. Ang bawat alpabetikong character in plain text ay Paglipat sa pamamagitan ng isang sulat sa keyword. Sa halimbawang ito, ang keyword ohai, Oh tumutugon sa isang shift ng 14; H sa isang shift ng 7; A, shift ng 0; at ako ay isang shift ng 8. Kung matagumpay mong naipatupad ang iyong Caesar cipher, makikita ito maging isang magaling framework mula sa kung saan mo maaaring ipatupad Vigenere. Tulad ng iyong nakikita, ang pagpapatakbo ng isang Vigenere cipher na may isang solong character bilang isang keyword ay ang parehong bagay bilang isang Caesar cipher. Ang parehong mga hakbang upang ilapat Vigenere bilang ang kanilang ginawa sa Caesar. Ang keyword ay ang pangalawang command line argumento, kaya mo itong ma-access sa argv1. Pagkatapos ay kailangan mong i-verify na ang susi salita talaga ang lahat alphabetical. Dito ay kung saan ay alpha Maaaring makita sa madaling-gamiting. Kung mayroon kang isang wastong keyword, makakakuha ka ng lakas mula sa gumagamit, at pagkatapos ay handa ka na upang ensayper. Ang formula Vigenere cipher ay katulad sa Caesar formula, maliban ngayon k nagiging k subscript j, na nagpapahiwatig j ang ika-sulat ng keyword. Sabihin hakbang sa pamamagitan ng prosesong ito. Sabihin nating nais mong magpadala ng mensahe sa iyong pag-crash, gusto ko sa iyo, ngunit hindi mo pag gusto lahat malaman. Kaya mong gamitin ang isang Vigenere cipher sa panda keyword, dahil, na rin, ikaw din i pandas. Ang unang titik, ko, ay Paglipat sa pamamagitan ng p, na nagbibigay sa x, 15 titik pagkatapos kong, dahil 15 p ay ang ika-16 titik ng alpabeto. Ang susunod na titik sa plain text ay ang isang puwang, sa gayon ay hindi mai-Paglipat. At sa index ng keyword hindi magbabago. Pagkatapos ay sa susunod na sulat sa plain text ay l, Paglipat sa pamamagitan ng, na hindi shift ang plain na sulat teksto sa lahat, dahil isang ay ang 0 titik ng alpabeto. Ang proseso ay nagpatuloy, ang pagsulong keyword na character sa tuwing mayroong isang sulat sa plain text. Sa sandaling ang huling sulat sa keyword ay naabot, ang keyword bumabalot sa paligid at nagbabago sa susunod na plain teksto ng sulat sa pamamagitan ng p. X lvne noh. Paano romantikong. Kaya ibinigay na katangian ng, paano mo convert na sa nararapat na Cipher shift? Subukan ang paghahambing ng ASCII mga halaga sa shift. Marahil, maaari kang makahanap ng isang relasyon sa pagitan ng mga titik at ang kanilang mga alpabetikong index gamit ang ASCII matematika. Maaari mong idagdag o ibawas sa isang character mula sa isa pang upang makakuha mo ang nais na resulta? Tandaan na ang mga pagbabago para sa uppercase at maliliit na mga titik ay pareho. Kaya marahil ay kailangan mong kilalanin ang dalawang mga katulad na formula upang kumatawan sa shift, isa para sa isang uppercase keyword karakter, at isa para sa isang maliit na isa. Susunod, tandaan na ang mga keyword advances lamang kung ang mga character sa plain text ay isang sulat at na sa kaso ng mga plain teksto ay dapat na mapangalagaan. Kaya kung tinitingnan namin ang formula para sa Vigenere shift, may dalawang index variable, i at j. One Sinusubaybayan ng mga posisyon sa plain text, at ang iba pang mga posisyon sa mga keyword. Ngunit ang iyong mga plain text ay maaaring maging mas matagal kaysa sa iyong mga keyword, kung saan ang iyong keyword index kailangang pambalot sa paligid ng likod sa unahan ng keyword. Paano mo gawin ito? Tignan natin pabalik sa modulo operator. Modulo ay tinutukoy ay ang natitira paghahati ng dalawang numero. Ngunit kung ano ang isang aktwal na mga praktikal na gumamit ng modulo? Well, sabihin nating mayroon kang isang malaking pangkat ng mga mga tao, at kailangan mong hatiin sa tatlong pangkat. Ang isang paraan upang hatiin ang mga tao sa mga grupo ay ang magkaroon ang mga ito off ang bibilangin. Ikaw ang numero ng mga grupo ng pangkat numero 1, 2, at 3. Ang unang tao ay sabihin 1, sa susunod na 2, ang susunod na 3. Ang mga tao na pagkatapos ay sabihin 1, dahil doon ay hindi isang pangkat 4, at ang Bilang ng mga pagsisimula sa paglipas ng mula doon. Maaari mong gamitin ang modulo sa gawin ang parehong bagay. Oras na ito, ang mga grupo ng kalooban maging pangkat 0, 1, at 2. Ang unang tao, bilang 1 modulo 3, ay 1. Tao 2 3 modulo ay 2. Tao 3 modulo 3 ay 0. Tao 4 modulo 3 ay nagbibigay sa 1, at sa gayon ang grupo Maaari I-wrap sa paligid. Kaya kung kumuha ka ng isang index at modulo na-index sa pamamagitan ng isang maximum na laki, ang resulta ay hindi kailanman ay magiging mas malaki kaysa sa o katumbas ng laki, na nangangahulugan na sa iyo maaaring taasan ang bilang index magkano hangga't gusto mo. At hangga't modulo mo ang index sa pamamagitan ng numero sa ilan, hindi ka makakakuha ng isang numero mas malaki kaysa sa na. Kaya kami ay may 10 mga tao sa halip ng 5, at Gusto nila ang lahat makapag itinalaga sa mga grupo numero ng 0, 1, o 2. Subukan na mag-aplay ito sa pambalot sa ibabaw ng keyword, maliban sa halip ng pag-uuri mga tao sa mga numero group na nais mong ang index ng keyword sa gayon maaari mong makuha ang karapatan ng character para sa shift na walang paglampas sa haba ng string. Gamit na, mayroon kang ang iyong Vigenere cipher. Ang pangalan ko ay Zamyla, at ito ay CS50.