ZAMYLA சான்: முடுக்கிவிட நாம் எங்கள் வைஜெனேர் மறைக்குறியீடு விளையாட்டு. வைஜெனேர் மறைக்குறியீடு உள்ளது சீசர் மிகவும் ஒத்த, சீசர் தவிர நாங்கள் உள்ளே சென்று எங்கள் முக்கிய போன்ற ஒரு முழு. வைஜெனேர் உள்ள நாங்கள் போகிறோம் ஒரு முக்கிய கடந்து. எனவே, மாற்ற நான் விரும்பினால் இந்த சிஎஸ் 50 ஆகும் ohai, மூலம் பிரத்தியேக சங்கேத பாஷை, பின்னர் அந்த ஒவ்வொரு கடிதம் என்று அர்த்தம் ohai, முக்கிய பணியாற்ற போகிறது, நான் மேல் சுழற்சி போகிறேன் என் மாற்றத்தை, அந்த சொல் சைபர் உரையை செய்யும் கடினமாக நிறைய குறிவிலக்குவதற்காக. அது என்ன அர்த்தம் முக்கிய மூலம் மாற்ற? சரி, முக்கிய ஒரு சரம் அங்கு ஒவ்வொரு கடிதம் ஒத்துள்ளது சில முழு மாற்றம் செய்ய. எனவே, ஓ 14 ஒரு முக்கிய ஒத்துள்ளது, 7 ஒரு முக்கிய மணி, ஒரு, 0 ஒரு முக்கிய உள்ளது அதனால், எதையும் மாற்ற முடியாது பின்னர் நான் 8 ஒரு முக்கிய உள்ளது. நான் வைஜெனேர் ஒரு ஓடி சொல்ல வெற்று உரை இந்த CS50 நன்றாக உள்ளது, என்று வெறுமனே கொடுக்க வேண்டும் என்னை ஒரு மாறாமல் சரம். சமமானது என்று அறிவிப்பு பூஜ்ஜியமாக ஒரு முக்கிய கொண்டு சீசர் இயங்கும். உண்மையில், இயங்கும் வைஜெனேர் தனி எழுத்தை கொண்டு இயங்கும் சமமான வேண்டும் அதே முழு சீசர். சரி, அதனால், முதல் அவர்கள் விட்டோம் மிகவும் ஒத்த உண்மையில் பரிந்துரைக்கிறோம் என்று நீங்கள் கூட நீங்கள் உங்கள் சீசர் நகல் செய்யலாம் உங்கள் வைஜெனேர் குறியீடு ஒரு குறியீடு. விஷயங்கள், மாறும் ஆனால் குறைந்த பட்சம் நீங்கள் வேண்டும் நீங்கள் வேலை செய்யலாம் என்று சில முதுகெலும்பாக. TODOs நாம் விரும்பும் அதே ஏனெனில் முக்கிய பெற, உரை பெற, மறை வெற்று உரை, பின்னர் அந்த அவுட் அச்சிட. சீசர் போல முக்கிய போகிறது இரண்டாவது கட்டளை வரி போன்ற நிறைவேற்றப்பட்டது வாதம், argv குறியீட்டு உள்ள 1, ஆனால் அது இந்த முறை வித்தியாசமாக இருக்கிறது அது அகரவரிசை இருக்க வேண்டும், ஏனெனில். எனவே, நாம் ஒவ்வொரு மீது மீண்டும் கூறு வேண்டும் என்று முக்கிய ஒற்றை தன்மை பயனர் கடந்து, உறுதி என்று ஒவ்வொரு பாத்திரம் அகர என்று தொடரும் பொருட்டு. நாங்கள் பின்னர், செய்த முறை, நாங்கள் சரம் பயனர் இருந்து பெற முடியும், நாம் முன்பு செய்தது போல். இப்போது, நாம் நினைவில் வந்து வைஜெனேர் பிரச்சனை, இது நான் சீசர், எப்படி போன்ற ஆகிறது enciphering முறை கண்டுபிடிக்க மற்றும் சமன்பாடு, மற்றும் மறை முழு எளியவுரையில். எனவே, நீங்கள் கவனிக்க வேண்டும் என்று வைஜெனேர் மாற்றம் சமன்பாடு சீசர் ஒரு மிகவும் ஒத்த. ஒரே ஒரு வித்தியாசம் என்னவென்றால் அதற்கு பதிலாக ஒரு ஒற்றை மாறி k இன் முன், இப்போது k ஒரு ஒட்டு உள்ளது, முக்கிய jth கடிதம் குறிப்பிடவும். இது ஒரு உதாரணம் மூலம் நடக்க இருக்கிறது. நீங்கள் ஒரு இரகசிய கடக்க வேண்டும் என்று உங்கள் நேசம் மீது செய்தியை, நான் உன்னை விரும்புகிறேன். சரி, உங்கள் முக்கிய நீங்கள் ஏதாவது என்று தேர்வு உங்கள் தெரியும் ஈர்ப்பு நீங்கள் விரும்பும், பாண்டாக்கள் தெரியும். சரி, எப்படி நாம் இந்த மாற்றத்தை செய்ய? சரி, நாம் எங்கள் இயல்பு குறியீட்டெண் வேண்டும். அந்த முதல் கடிதம் மற்றும் எனவே எங்கள் முக்கிய குறியீடாகும் எந்த ப உள்ளது, முதல் எங்கள் பாண்டா வார்த்தையில் கடிதம். எனவே, ப நான் மாற்றுவதால் நம்மை x கொடுக்கிறது, பின்னர் நாங்கள், இயல்பு குறியீட்டு முன்னெடுக்க. இந்த ஒரு இடத்தை நமக்கு கிடைக்கிறது. இப்போது, எழுத்து இடைவெளி அல்லாத அகர, ஆகும் அதாவது, என்று தான் வலது சைபர் உரையை மீது இடமாற்றங்கள், நாங்கள் அங்கு ஒரு இடத்தில் போட, மற்றும் நாம் செய்ய எங்கள் முக்கிய ஐந்து குறியீட்டு முன்னெடுக்க. எனவே, நாம் இந்த கட்டத்தில் ப மணிக்கு இன்னும் இருக்கிறோம். நாம் அடுத்த முன்னெடுக்க எங்கள் இயல்பு குறியீட்டு. இப்போது, என்று உள்ளது, ஏனெனில் ஒரு கடிதம், ஸ்மால் எல், நாங்கள் அந்த மாற்ற எங்கள் முக்கிய அடுத்த குறியீட்டு. எந்த ஒரு இது பூஜ்ஜியம், ஒரு ஆகிறது மாற்றம் என்று தான் ஆகிறது எங்கள் சைபர் உரையை ஒரு எல். பின்னர், நாங்கள், இயல்பு இருவரும் முன்னெடுக்க, மற்றும் முக்கிய குறியீடான அது அகர ஏனெனில். எனவே நாம் அந்த தொடர்ந்து நாங்கள் போன்ற மின் கிடைக்கும் வரை. சரி, நீங்கள் இந்த கவனிக்க வேண்டும் , என்று சுட்டிக்காட்ட எங்கள் முக்கிய குறியீடான அடிப்படையில், நாங்கள் இறுதியில் அடைந்துவிட்டீர்கள் பாண்டா வார்த்தை, அதனால் என்ன நாங்கள் அடுத்த கிடைக்கும் போது நடக்கும் இயல்பு உள்ள அகர கடிதம்? சரி, என்ன நடக்கிறது என்று நாங்கள் ஆகிறது துவக்கத்தில் சுற்றி போர்த்தி, எங்கள் முக்கிய முதல் குறியீட்டு. எனவே, நாம் என்று மாற்ற ப Y, எங்களுக்கு N கொடுக்க. பின்னர், நாம் குறியீட்டு முடித்த தொடர்ந்து எங்கள் இயல்பு X lvne நோ பெற. இந்த உதாரணம் இருந்து, நான் நாங்கள் மட்டும் முன்னெடுக்க என்று காட்டியது முக்கிய அடுத்த கடிதத்தில் என்றால் உரை பாத்திரம் isalpha எனவே ஒரு கடிதம் செயல்பாடு இங்கே கைக்குள் வரும். மற்றும், நான் சீசர் போலவே, நாம் வேண்டும் வழக்கு, isupper மற்றும் islower பாதுகாக்க. எனவே, இந்த சிறிது சேர்க்க உங்கள் சூடோகுறியீடு ஒரு இல். நாம் எப்படி முக்கிய ஷிப்டுகளில் கண்டுபிடிக்க? சரி, நீங்கள் எங்கள் விவாதம் நினைவு என்றால் சீசர் அகரவரிசை குறியீடுகளில் பிரச்சனை, அது போலவே தான். ஒரு ஒரு ஆஸ்கி ஒத்துள்ளது எங்கே 65 மதிப்பு ஆனால் 0 ஒரு மாற்றத்தை, பின்னர் கடைசி கடிதம் எழுத்துக்கள், இசட், 25 ஒரு மாற்றத்தை ஒத்துள்ளது. நீங்கள் மாற்றத்தை என்று கவனிக்க வேண்டும் ஒத்ததாக உள்ளது அல்லது இல்லையா கடிதம் மேல் வழக்கு அல்லது கீழ் வழக்கு உள்ளது. சரி, இப்போது நீங்கள் என்று கண்டுபிடிக்க எப்படி தெரியும் எண் மாற்றம் என்று ஒரு ஒற்றை தன்மையை ஒத்துள்ளது நமது சமன்பாடு திரும்பி செல்லலாம். நாங்கள் இரண்டு வெவ்வேறு வேண்டும், ஏனெனில் இங்கே கீழ்க்குறியீட்டுகளாக, நான் மற்றும் ஜே, என்று நாம் கண்காணிக்க வேண்டும் என்று ஒரு குறிப்பை என்று இயல்பு இருவரும் எங்கள் நிலையை அத்துடன் முக்கிய எங்கள் நிலையை போல், அதனால் அந்த இரண்டு தனி மாறிகள் நாங்கள் ஒரு பிடி வைக்க வேண்டும் என்று. இப்போது, எங்கள் இயல்பு நிலை ஒவ்வொரு முறையும் அதிகரிக்க போகிறது, அதனால் ஒரு இருக்க போகிறது பிட் இன்னும் நேராக முன்னோக்கி நிலையை முக்கிய பதிலாக, இது நாம் தெரிந்து சுற்றி உள்ளது, மற்றும் சில நேரங்களில் அதிகப்படுத்த, சில நேரங்களில் அதே தங்க. எனவே, நாம் எப்படி செயல்படுத்த வேண்டாம் செயல்பாடு சுற்றி முக்கிய ஐந்து குறியீட்டு? நான் எண்ண உதாரணமாக பயன்படுத்த போகிறேன். ஆஃப் எண்ணி ஒரு பிரபலமான வழி குழுக்களாக மக்கள் பிரிந்தது. நான் இதற்காக 5 பேர் இருந்தனர் மற்றும் நான் விரும்பினேன் மூன்று குழுக்களாக அவர்கள் பிரிந்து, நன்கு பின்னர் நான் ஆஃப் எண்ணி தொடங்க வேண்டும். முதல் நபர் என்று , நான் அணி முதலிடத்தை நான் சொல்ல அடுத்த நபர் குழு எண்ணாக இருக்கும் இரண்டு, மூன்றாம் நபர் குழு எண் மூன்று. இப்போது, நான் மட்டும் மூன்று குழுக்கள் வேண்டும் நான்காவது நபர், உண்மையில் ஆரம்பத்தில் தொடங்க சொல்ல, நன்றாக, நான் அதே அணி முதலிடத்தை இருக்கிறேன், மற்றும் அடுத்த நபர் அணி எண்ணிக்கை இரண்டு இருக்கும். மற்றும், அங்கு இருந்து, அவர்கள் பின்னர் முடியும் தங்கள் குழுக்கள் பிரிகின்றன. எனவே, நான் மட்டு பயன்படுத்த வேண்டும் எனக்கு செயல்படுத்த உதவ இந்த செயல்பாடு சுற்றி மடக்கு எண்ண? சரி, முதல் நபர் எண் 1, மோட் 3 எங்களுக்கு 1 கொடுக்கிறது. 2 மோட் 3 எங்களுக்கு 2 கொடுக்கிறது, மற்றும் 3 மோட் 3 எங்களுக்கு 0 கொடுக்கிறது. நான்காவது நபர், எண் 4, மோட் 3 எங்களுக்கு 1 கொடுக்கிறது, பின்னர் 5 மோட் 3 எங்களுக்கு 2 கொடுக்கிறது. எனவே, நீங்கள் கூட என்று பார்ப்பீர்கள் மக்களின் எண்ணிக்கை நான் வேண்டும் என்று அதிகரிக்கிறது, மற்றும் மேலே உள்ளது 3, என்பதால் நான் 3 modding நான் நான் எப்போதும் எண்கள் 0, 1, மற்றும் 2 கிடைக்கும். நான் 3 விட பெரிய பெற முடியாது. எனவே, நான் 10 இருந்தது கூட மக்கள், பின்னர் அந்த மக்களின் அனைத்து இன்னும் குழுக்கள் 1, 2, அல்லது 0 க்குள் இருக்க வேண்டும். எனவே, இப்போது நாம் என்று நாம் ஒரு குழு இருந்தால் 5 மற்றும் 3 மூலம் அந்த அனைத்து mod, நாங்கள் அந்த போகிறோம் குழுக்கள் 0, 1, அல்லது 2 க்கு மேல். எனவே, நாம் ஒருபோதும் ஒரு குழு பெற போகிறோம் 3 அல்லது மேலே சமமாக தான் என்று பல. எனவே, இன்னும் ஐந்து சேர்க்க கூட மக்கள், பின்னர் அவர்கள் அனைவரும் இன்னும் குழுக்கள் ஒதுக்கப்படும் என்று 0, 1, அல்லது 2 நான் 3 modding தான் காரணம். நான் இல்லை என்று வரையறையை தாண்ட போகிறேன். சரி, நாம் விண்ணப்பிக்க முடியும் என்றால் நாம் பார்ப்போம் மட்டு பயன்படுத்தும் இந்த கருத்து சுற்றி குழு எண்கள் மற்றும் விண்ணப்பிக்க நாங்கள் வேண்டும் எங்கே வைஜெனேர் செய்ய சுற்றி மட்டு பயன்படுத்த முக்கிய ஐந்து குறியீட்டு. கூட நாம் உயர்த்துவதன் என்றாலும் குறியீட்டு எப்போதும் நாங்கள் நிச்சயமாக எப்போதும் நாம் என்று செய்ய வேண்டும் ஆரம்பத்தில் சுற்றி ஒருபோதும் மிகாமல் சரம் நீளம். சரி, அதனால் நான் இருக்கும் என்று எனக்கு தெரியும் ஒரு சிறிய பிட் பெரும். இந்த ப செட் செய்ய இன்னும் நிறைய இருக்கிறது. எனவே, நீங்கள் எழுத என்று உறுதி நீங்களே ஒரு நல்ல சூடோகுறியீடு நீங்கள் புரிந்து கொள்ள வேண்டும் என்று மற்றும் என்று வேலை கிடைக்கிறது. முயற்சி மற்றும் ஒவ்வொரு முகவரியையும் ஒற்றை வரி சுயாதீனமாக அனைத்து சிறிய கண்டறிவதன் புதிர் சிறிய துண்டுகள் ஒன்றாக அதை வைத்து முன். நீங்கள் பெற முடியும் என்று உறுதி கட்டளை வரியிலிருந்து முக்கிய மற்றும், அது அகர தான் என்று உறுதி பயனர் உரை பெற, பின்னர் enciphering, நீங்கள் உறுதி ஒரு கடிதம் மறை எப்படி தெரியும், பின்னர் முழு சரம் முன்னேற செயல்பாடுகளை சுற்றி அனைத்து. இறுதியாக, நீங்கள் சைபர் உரையை அச்சிட முடியாது. என் பெயர், ஒரு Zamyla உள்ளது இந்த வைஜெனேர் இருந்தது.