Სარჩევი:

Caesar Cipher პროგრამა პითონში: 4 ნაბიჯი
Caesar Cipher პროგრამა პითონში: 4 ნაბიჯი

ვიდეო: Caesar Cipher პროგრამა პითონში: 4 ნაბიჯი

ვიდეო: Caesar Cipher პროგრამა პითონში: 4 ნაბიჯი
ვიდეო: TUDev's Cryptography with Python Workshop! Creating a Substitution Cipher (Caesar Cipher) 2024, ნოემბერი
Anonim
კეისრის შიფრის პროგრამა პითონში
კეისრის შიფრის პროგრამა პითონში

კეისრის შიფრი არის უძველესი და ფართოდ გავრცელებული შიფრი, რომლის დაშიფვრა და გაშიფვრა ადვილია. იგი მუშაობს ანბანის ასოების გადატანით, რათა შეიქმნას სრულიად ახალი ანბანი (ABCDEF- ს შეეძლო 4 ასოზე გადაეტანა და გახდებოდა EFGHIJ).

Caesar Ciphers არ არის ყველაზე უსაფრთხო შიფრები, მაგრამ კარგია მცირე ამოცანებისთვის, როგორიცაა საიდუმლო ჩანაწერების გადაცემა ან პაროლების ოდნავ გაძლიერება. კოდის გაშიფვრა მართლაც ადვილია, მაგრამ დამღლელი შეიძლება იყოს მისი დაშიფვრა, თუ არ გაქვთ დამახსოვრებული სპეციალური ანბანი.

ამ პროცესის გასაადვილებლად ჩვენ შეგვიძლია გამოვიყენოთ კომპიუტერების ძალა, უფრო კონკრეტულად კი პროგრამირების ენა Python.

ეს ინსტრუქცია გაჩვენებთ თუ როგორ უნდა შექმნათ პროგრამა, რომელიც შეტყობინებებს გადააქცევს შიფრად თქვენი ბრძანებით.

მარაგები

ყველაფერი რაც თქვენ გჭირდებათ არის პითონის თარჯიმანი: IDLE, Pycharm და Thonny არის რამდენიმე კარგი, უფასო ვარიანტი (მე გამოვიყენე Pycharm)

პითონის ძირითადი ცოდნა

ნაბიჯი 1: ცვლადების გამოცხადება და შეყვანის მიღება

ცვლადების გამოცხადება და შეყვანის მიღება
ცვლადების გამოცხადება და შეყვანის მიღება

ანბანის, შეტყობინების, ცვლის და ა.შ. სიმებიანი (ტექსტური) მნიშვნელობების რეალურად შესანახად ჩვენ უნდა გამოვიყენოთ ცვლადები. ჩვენ ვიწყებთ ცვლადების "ანბანის", "partialOne", "partialTwo" და "newAlphabet" გამოცხადებით. მე დავწერე ცვლადების სახელები Camel Case- ში ჩემს კოდში (პირველი სიტყვა არის მცირე და მეორე დიდი), მაგრამ თქვენ შეგიძლიათ დაწეროთ ის როგორც გინდათ, რამდენადაც გახსოვთ მისი შეცვლა დანარჩენ კოდშიც რა ანბანის ცვლადს აქვს მნიშვნელობა "abcdefghijklmnopqrstuvwxyz". ყველა სხვა ცვლადი დაყენებულია "" - ზე, რაც არის ცარიელი სტრიქონი, რადგან ჩვენ ჯერ არ გვაქვს მათი მნიშვნელობები.

რას აკეთებს ეს არის ნაწილობრივი სისტემის შექმნა, რასაც ჩვენ ვიყენებთ იმისათვის, რომ რეალურად შევქმნათ ცვლა. ეს იქნება ახსნილი შემდგომ ეტაპზე.

ამის შემდეგ, ჩვენ უნდა მივიღოთ შეტყობინება და გადავიტანოთ მნიშვნელობა მომხმარებლისგან. ჩვენ ვიყენებთ შეყვანის ფუნქციას ამისათვის. კოდის ეს ნაწილი მომხმარებელს სთხოვს შეტყობინებას და რიცხვს ანბანის გადასატანად.

კოდი:

ანბანი = "abcdefghijklmnopqrstuvwxyz"

partialOne = ""

partialTwo = ""

newAlphabet = ""

message = input ("გთხოვთ შეიყვანოთ შეტყობინება, რომლის თარგმნაც გსურთ:"). ქვედა ()

გასაღები = int (შეყვანა ("გთხოვთ შეიყვანოთ ნომერი, რომლის გადანაცვლებაც გსურთ:"))

ნაბიჯი 2: ახალი ანბანის შექმნა

ახალი ანბანის შექმნა
ახალი ანბანის შექმნა

ახლა შევცვალოთ ანბანი. ამისათვის ჩვენ გამოვიყენებთ ნაწილობრივ სისტემას. ნაწილობრივი სისტემა არის ადგილი, სადაც კომპიუტერი ანბანს ორ ნაწილად ყოფს (ნაწილების თქმის მშვენიერი გზა). პირველი ნაწილი ნაწილობრივ დიდი ხანია გითხრათ, რომ პროგრამა გადაინაცვლებს, მეორე კი დანარჩენია. კომპიუტერი ცვლის ნაწილობრივ. ეს არის ზუსტად ის, რასაც კოდი აკეთებს, პირველ დებულებასთან ერთად, სადაც ნათქვამია, რომ თუ ცვლა არის 0, ახალი ანბანი და ძველი ანბანი იგივეა, რადგან თქვენ არაფერს ცვლით.

Მაგალითად:

მიმდევრობა - 123456789

ნაწილობრივი პირველი - 123; მეორე ნაწილი - 456789

ახალი მიმდევრობა - 456789123

კოდი:

თუ გასაღები == 0:

newAlphabet = ანბანი

elif გასაღები> 0:

partialOne = ანბანი [: გასაღები]

partialTwo = ანბანი [გასაღები:]

newAlphabet = ნაწილობრივი ორი + ნაწილობრივი ერთი

სხვა:

partialOne = ანბანი [:(26 + გასაღები)]

partialTwo = ანბანი [(26 + გასაღები):]

newAlphabet = ნაწილობრივი ორი + ნაწილობრივი ერთი

ნაბიჯი 3: შეტყობინების გადატანა

შეტყობინების გადატანა
შეტყობინების გადატანა

ახლა ჩვენ გვაქვს ჩვენი ანბანი და ახალი ანბანი. რჩება მხოლოდ შეტყობინების კოდში გადაყვანა.

პირველ რიგში, ჩვენ ვაყენებთ ახალ ცვლადს და ვუწოდებთ მას "დაშიფრულს" და ვაყენებთ მას "". შემდეგ ჩვენ ვწერთ მართლაც რთულ მარყუჟს, რომელიც ამოწმებს შეტყობინების თითოეულ ასოს და გადააქცევს მას ახალ ასოზე. ის გამოაქვს შედეგი და აქ არის ის, წარმატებით მოაქცია კოდი!

კოდი:

დაშიფრული = "" message_index დიაპაზონში (0, len (შეტყობინება)):

თუ შეტყობინება [message_index] == "":

დაშიფრული+= ""

alphabet_index დიაპაზონში (0, len (newAlphabet)):

თუ შეტყობინება [message_index] == ანბანი [alphabet_index]:

დაშიფრული+= ახალი ანბანი [alphabet_index]

ბეჭდვა (დაშიფრული)

ნაბიჯი 4: დამატებითი

დამატებითი
დამატებითი
დამატებითი
დამატებითი

თან ერთვის კოდის ფაილი.

გირჩევთ: