Caesar Cipher ծրագիրը Python- ում. 4 քայլ
Caesar Cipher ծրագիրը Python- ում. 4 քայլ
Anonim
Caesar Cipher ծրագիրը Python- ում
Caesar Cipher ծրագիրը Python- ում

Caesar Cipher- ը հնագույն և լայնորեն կիրառվող ծածկագիր է, որը հեշտ է գաղտնագրել և վերծանել: Այն աշխատում է այբուբենի տառերը փոխելով ՝ ստեղծելով բոլորովին նոր այբուբեն (ABCDEF- ը կարող է տեղափոխել 4 տառից ավելի և կդառնա EFGHIJ):

Caesar Ciphers- ը ամենաապահով ծածկագրերը չեն, բայց լավ են փոքր առաջադրանքների համար, ինչպիսիք են գաղտնի գրառումների փոխանցումը կամ գաղտնաբառերը մի փոքր ավելի ուժեղ դարձնելը: Կոդն իսկապես հեշտ է վերծանել, բայց ծածկագրելը հոգնեցուցիչ կարող է լինել, եթե անգիր չունեք հատուկ այբուբենը:

Այս գործընթացը ավելի դյուրին դարձնելու համար մենք կարող ենք օգտագործել համակարգիչների հզորությունը, ավելի կոնկրետ ՝ Python ծրագրավորման լեզուն:

Այս Instructable- ը ցույց կտա ձեզ, թե ինչպես ստեղծել ծրագիր, որը ձեր հրամանով հաղորդագրությունները վերածում է ծածկագրի:

Պարագաներ

Այն, ինչ ձեզ հարկավոր է, Python- ի թարգմանիչ է. IDLE, Pycharm և Thonny որոշ լավ, անվճար տարբերակներ են (ես օգտագործել եմ Pycharm)

Պիտոնի հիմնական իմացություն

Քայլ 1. Փոփոխականների հայտարարում և մուտքագրում

Փոփոխականների հայտարարում և մուտքագրում
Փոփոխականների հայտարարում և մուտքագրում

Այբուբենի, հաղորդագրության, հերթափոխի և այլնի լարային (տեքստային) արժեքները իրականում պահելու համար մենք պետք է օգտագործենք փոփոխականներ: Մենք սկսում ենք հայտարարելով «այբուբեն», «partialOne», «partialTwo» և «newAlphabet» փոփոխականները: Ես գրել եմ Camel Case- ի փոփոխականների անունները իմ ծածկագրում (առաջին բառը փոքր է, իսկ երկրորդը ՝ մեծ), բայց կարող եք գրել այն ինչպես ցանկանում եք, քանի դեռ հիշում եք, որ այն փոխեք նաև մնացած ծածկագրում. Այբուբենի փոփոխականն ունի «abcdefghijklmnopqrstuvwxyz» արժեքը: Մնացած բոլոր փոփոխականները դրված են "", որը դատարկ տող է, քանի որ մենք դեռ չունենք դրանց արժեքները:

Այն, ինչ անում է, մասնակի համակարգի ստեղծումն է, որն այն է, ինչ մենք օգտագործում ենք իրականում տեղաշարժ ստեղծելու համար: Սա կբացատրվի հետագա քայլում:

Դրանից հետո մենք պետք է ստանանք հաղորդագրությունը և փոխենք արժեքը օգտվողից: Մենք օգտագործում ենք մուտքագրման գործառույթը դա անելու համար: Կոդի այս հատվածը օգտվողից խնդրում է հաղորդագրություն և համար ՝ այբուբենը դրանով տեղափոխելու համար:

ԿՈԴ:

այբուբեն = "abcdefghijklmnopqrstuvwxyz"

partialOne = ""

partialTwo = ""

newAlphabet = ""

հաղորդագրություն = մուտքագրում ("Խնդրում ենք մուտքագրել այն հաղորդագրությունը, որը ցանկանում ես թարգմանել."). ներքև ()

key = int (մուտքագրում («Խնդրում ենք մուտքագրել այն համարը, որով ցանկանում եք տեղափոխել ՝»))

Քայլ 2. Նոր այբուբենի ստեղծում

Նոր Այբուբենի ստեղծում
Նոր Այբուբենի ստեղծում

Այժմ ստեղծենք փոփոխված այբուբենը: Դա անելու համար մենք կօգտագործենք մասնակի համակարգը: Մասնակի համակարգն այն է, որտեղ համակարգիչը այբուբենը երկու մասի է բաժանում (մասեր ասելու ֆանտաստիկ ձև): Առաջին մասն այնուամենայնիվ երկար է, երբ դուք ասացիք, որ ծրագիրը պետք է անցնի, իսկ երկրորդը `մնացածը: Համակարգիչը փոխում է մասերը: Դա հենց այն է, ինչ անում է ծածկագիրը ՝ առաջին հայտարարության հետ միասին, որն ասում է, որ եթե հերթափոխը 0 է, նոր այբուբենը և հին այբուբենը նույնն են, քանի որ դու ոչինչ չես փոխում:

Օրինակ:

Հաջորդականություն - 123456789

Մաս 1 - 123; Երկրորդ մաս - 456789

Նոր հաջորդականություն - 456789123

ԿՈԴ:

եթե բանալին == 0:

newAlphabet = այբուբեն

elif բանալին> 0:

partialOne = այբուբեն [: key]

partialTwo = այբուբեն [բանալի:]

newAlphabet = partialTwo + partialOne

այլ:

partialOne = այբուբեն [:(26 + բանալին]

partialTwo = այբուբեն [(26 + բանալին):]

newAlphabet = partialTwo + partialOne

Քայլ 3: Տեղափոխել հաղորդագրությունը

Տեղափոխելով հաղորդագրությունը
Տեղափոխելով հաղորդագրությունը

Այժմ մենք ունենք մեր այբուբենը և նոր այբուբենը: Մնում է հաղորդագրությունը կոդի վերածել:

Նախ, մենք սահմանում ենք նոր փոփոխական և այն անվանում «կոդավորված» և դնում "": Այնուհետև մենք գրում ենք իսկապես բարդ օղակ, որը ստուգում է հաղորդագրության յուրաքանչյուր տառը և այն վերածում նոր տառի: Այն թողարկում է արդյունքը, և ահա այն ունեք ՝ հաջողությամբ փոխարկված կոդ:

ԿՈԴ:

encrypted = "" for message_index in range (0, len (message)):

եթե հաղորդագրություն [message_index] == "":

կոդավորված+= ""

alphabet_index- ի համար (0, len (newAlphabet)):

եթե հաղորդագրություն [message_index] == այբուբեն [alphabet_index]:

կոդավորված+= newAlphabet [alphabet_index]

տպել (կոդավորված)

Քայլ 4: Լրացուցիչ

Լրացուցիչ
Լրացուցիչ
Լրացուցիչ
Լրացուցիչ

Կցված է ծածկագրային ֆայլը:

Խորհուրդ ենք տալիս: