Мазмұны:

Python -дағы Цезарь шифр бағдарламасы: 4 қадам
Python -дағы Цезарь шифр бағдарламасы: 4 қадам

Бейне: Python -дағы Цезарь шифр бағдарламасы: 4 қадам

Бейне: Python -дағы Цезарь шифр бағдарламасы: 4 қадам
Бейне: Python программалау тілін 0-ден бастап үйрену. №1 сабақ 2024, Шілде
Anonim
Python -дағы Цезарь шифр бағдарламасы
Python -дағы Цезарь шифр бағдарламасы

Цезарь шифры - ескі және кеңінен қолданылатын шифр, оны шифрлауға және шешуге оңай. Ол жаңа әліпби жасау үшін алфавиттің әріптерін ауыстыру арқылы жұмыс істейді (ABCDEF 4 әріптен асып, EFGHIJ болады).

Цезарь шифры - бұл ең қауіпсіз шифр емес, бірақ құпия жазбаларды беру немесе құпия сөздерді күшейту сияқты кішігірім тапсырмалар үшін жақсы. Кодты ашу өте оңай, бірақ егер сізде арнайы алфавит жатталмаса, оны шифрлау қиынға соғуы мүмкін.

Бұл процесті жеңілдету үшін біз компьютерлердің күшін, нақтырақ айтқанда Python бағдарламалау тілін қолдана аламыз.

Бұл нұсқаулық сіздің пәрменіңіз бойынша хабарларды шифрға түрлендіретін бағдарламаны қалай жасау керектігін көрсетеді.

Жабдықтар

Сізге тек Python аудармашы қажет: IDLE, Pycharm және Thonny - бұл жақсы, ақысыз нұсқалар (мен Pycharm қолдандым)

Python туралы негізгі білім

1 -қадам: айнымалыларды жариялау және енгізу

Айнымалыларды жариялау және енгізу
Айнымалыларды жариялау және енгізу

Алфавиттің жолдық (мәтіндік) мәндерін, хабарды, жылжуды және т.б. сақтау үшін бізге айнымалыларды қолдану қажет. Біз «алфавит», «partialOne», «partialTwo» және «newAlphabet» айнымалыларын жариялаудан бастаймыз. Мен Camel Case ішіндегі айнымалылардың аттарын өз кодымда жаздым (бірінші сөз - кіші және екінші үлкен әріп), бірақ сіз оны қалаған жолмен жаза аласыз, егер сіз оны кодтың қалған бөлігінде өзгертуді ұмытпасаңыз.. Әліпби айнымалысы «abcdefghijklmnopqrstuvwxyz» мәніне ие. Барлық басқа айнымалылар «» мәніне орнатылған, бұл бос жол, өйткені бізде олардың мәндері әлі жоқ.

Бұл - ішінара жүйені орнату, біз ауысымды іс жүзінде жасау үшін қолданамыз. Бұл келесі қадамда түсіндіріледі.

Осыдан кейін біз хабарламаны алып, пайдаланушыдан мәнді ауыстыруымыз керек. Ол үшін енгізу функциясын қолданамыз. Кодтың бұл бөлігі пайдаланушыдан алфавитті ауыстыру үшін хабарлама мен нөмірді сұрайды.

КОД:

алфавит = «abcdefghijklmnopqrstuvwxyz»

partialOne = «»

partialTwo = «»

newAlphabet = «»

message = input («Аударғыңыз келетін хабарды енгізіңіз:»).lower ()

key = int (енгізу («ауысқыңыз келетін нөмірді енгізіңіз:»)))

2 -қадам: Жаңа әліпбиді құру

Жаңа әліпби құру
Жаңа әліпби құру

Енді ауысқан алфавит жасау. Ол үшін біз ішінара жүйені қолданамыз. Ішінара жүйе - бұл компьютер әліпбиді екіге бөледі (бөліктерді айтудың сәнді әдісі). Бірінші бөлік сіз бағдарламаға ауысуды айтқаныңызға қанша уақыт қалды, ал екіншісі - қалғаны. Компьютер бөлшектерді ауыстырады. Бұл код дәл осылай жасайды, егер бірінші ауысым 0 болса, жаңа әліпби мен ескі әліпби бірдей, өйткені сіз ештеңені ауыстырмайсыз.

Мысалға:

Реті - 123456789

Ішінара - 123; Екінші бөлім - 456789

Жаңа реттілік - 456789123

КОД:

егер кілт == 0:

newAlphabet = әліпби

elif пернесі> 0:

partialOne = әліпби [: key]

partialTwo = әліпби [перне:]

newAlphabet = partialTwo + partialOne

басқа:

partialOne = алфавит [:(26 + перне)]

partialTwo = алфавит [(26 + перне):]

newAlphabet = partialTwo + partialOne

3 -қадам: хабарламаны ауыстыру

Хабарды ауыстыру
Хабарды ауыстыру

Енді бізде әліпби мен жаңа әліпби бар. Хабарды кодқа ауыстыру ғана қалады.

Біріншіден, біз жаңа айнымалы мәнді орнатамыз және оны «шифрланған» деп атаймыз және оны «» деп орнатамыз. Содан кейін біз хабарламадағы әрбір әріпті тексеретін және оны жаңа әріпке ауыстыратын өте күрделі цикл жазамыз. Ол нәтижені шығарады және сізде табысты түрлендірілген код бар!

КОД:

encrypted = «» (_0, len (хабарлама)) message_index үшін:

егер хабар [message_index] == «»:

шифрланған+= «»

алфавит_ индексі үшін (0, len (newAlphabet)):

егер хабар [message_index] == алфавит [alpha_index]:

шифрланған+= жаңаӘліппе [алфавит_әнекс]

басып шығару (шифрланған)

4 -қадам: қосымша

Қосымша
Қосымша
Қосымша
Қосымша

Код файлы бекітілген.

Ұсынылған: