Talaan ng mga Nilalaman:

Programang Caesar Cipher sa Python: 4 na Hakbang
Programang Caesar Cipher sa Python: 4 na Hakbang

Video: Programang Caesar Cipher sa Python: 4 na Hakbang

Video: Programang Caesar Cipher sa Python: 4 na Hakbang
Video: TUDev's Cryptography with Python Workshop! Creating a Substitution Cipher (Caesar Cipher) 2024, Nobyembre
Anonim
Caesar Cipher Program sa Python
Caesar Cipher Program sa Python

Ang Caesar Cipher ay isang sinaunang at malawakang ginagamit na cipher na madaling i-encrypt at i-decrypt. Gumagana ito sa pamamagitan ng paglilipat ng mga titik ng alpabeto upang lumikha ng isang bagong bagong alpabeto (maaaring ilipat ng ABCDEF ang higit sa 4 na titik at magiging EFGHIJ).

Ang Caesar Ciphers ay hindi ang pinaka-ligtas na mga cipher doon, ngunit mabuti para sa maliliit na gawain tulad ng pagpasa ng mga lihim na tala o paggawa ng mga password na medyo malakas. Napakadali na maintindihan ang code, ngunit maaaring nakakapagod na i-encrypt ang isa kung wala kang kabisadong espesyal na alpabeto.

Upang gawing mas madali ang prosesong ito, maaari naming gamitin ang lakas ng mga computer, mas partikular ang wika ng programa na Python.

Ipapakita sa iyo ng Instructable na ito kung paano lumikha ng isang programa na nagpapalit ng mga mensahe sa isang cipher sa iyong utos.

Mga gamit

Ang kailangan mo lang ay isang tagasalin ng Python: IDLE, Pycharm, at Thonny ay ilang magagaling, libreng mga pagpipilian (Ginamit ko ang Pycharm)

Pangunahing kaalaman sa Python

Hakbang 1: Pagdeklara ng Mga Variable at Pagkuha ng Mga Input

Pagdeklara ng Mga Variable at Pagkuha ng Mga Input
Pagdeklara ng Mga Variable at Pagkuha ng Mga Input

Upang maimbak talaga ang mga halaga ng string (teksto) ng alpabeto, mensahe, paglilipat, atbp. Kailangan nating gumamit ng mga variable. Nagsisimula kami sa pamamagitan ng pagdedeklara ng mga variable na 'alpabeto', 'bahagyangOne', 'bahagyangTwo', at 'bagongAlphabet'. Sinulat ko ang mga pangalan ng mga variable sa Camel Case sa aking code (ang unang salita ay maliit at pangalawang malalaki) ngunit maaari mo itong isulat sa anumang nais mo, hangga't naaalala mong palitan din ito sa natitirang code.. Ang variable ng alpabeto ay may halagang "abcdefghijklmnopqrstuvwxyz". Ang lahat ng iba pang mga variable ay nakatakda sa "", na kung saan ay isang walang laman na string dahil wala pa namin ang kanilang mga halaga.

Ang ginagawa nito ay ang pagse-set up ng Partial system, na kung saan ay ginagamit namin upang aktwal na lumikha ng shift. Ipapaliwanag ito sa susunod na hakbang.

Pagkatapos nito, kailangan nating makuha ang mensahe at ilipat ang halaga mula sa gumagamit. Ginagamit namin ang pag-andar ng input upang magawa ito. Ang bahaging ito ng code ay humihiling sa gumagamit ng isang mensahe at isang numero upang ilipat ang alpabeto.

CODE:

alpabeto = "abcdefghijklmnopqrstuvwxyz"

partialOne = ""

partialTwo = ""

newAlphabet = ""

message = input ("Mangyaring ipasok ang mensahe na nais mong isalin:"). mas mababa ()

key = int (input ("Mangyaring ipasok ang numero na nais mong ilipat sa pamamagitan ng:"))

Hakbang 2: Paglikha ng Bagong Alpabeto

Paglikha ng Bagong Alpabeto
Paglikha ng Bagong Alpabeto

Ngayon upang likhain ang inilipat na alpabeto. Upang magawa ito, gagamitin namin ang bahagyang sistema. Ang bahagyang sistema ay kung saan nahahati ng computer ang alpabeto sa dalawang bahagyang (isang magarbong paraan ng pagsasabi ng mga bahagi). Ang unang bahagyang ay subalit mahaba sinabi mo sa programa na lumipat sa, at ang pangalawa ay ang natitira. Ang computer ay lumilipat ng mga bahagyang. Iyon mismo ang ginagawa ng code, kasama ang unang pahayag, na nagsasabing kung ang shift ay 0, ang bagong alpabeto at ang lumang alpabeto ay pareho dahil wala kang paglipat ng anuman.

Halimbawa:

Pagkakasunud-sunod - 123456789

Bahagyang Isa - 123; Bahagyang Bahagyang - 456789

Bagong Sequence - 456789123

CODE:

kung key == 0:

bagongAlphabet = alpabeto

elif key> 0:

partialOne = alpabeto [: key]

partialTwo = alpabeto [key:]

bagongAlphabet = bahagyang Dalawang + bahagyangOne

iba pa:

partialOne = alpabeto [:(26 + key)]

partialTwo = alpabeto [(26 + key):]

bagongAlphabet = bahagyang Dalawang + bahagyangOne

Hakbang 3: Paglilipat ng Mensahe

Paglilipat ng Mensahe
Paglilipat ng Mensahe

Ngayon mayroon kaming aming alpabeto at ang bagong alpabeto. Ang natitira lamang ay upang ilipat ang mensahe sa code.

Una, nagtakda kami ng isang bagong variable at tinawag itong 'naka-encrypt' at itinakda ito sa "". Pagkatapos ay nagsusulat kami ng isang talagang kumplikadong for-loop na susuriin ang bawat titik sa mensahe at ililipat ito sa bagong liham. Ito ay naglalabas ng resulta at mayroon ka nito, isang matagumpay na na-convert na code!

CODE:

naka-encrypt = "" para sa message_index sa saklaw (0, len (mensahe)):

kung mensahe [message_index] == "":

naka-encrypt + = ""

para sa alpabeto_index sa saklaw (0, len (bagongAlphabet)):

kung mensahe [message_index] == alpabeto [alpabeto_index]:

naka-encrypt + = bagongAlphabet [alpabeto_index]

print (naka-encrypt)

Hakbang 4: Karagdagan

Karagdagan
Karagdagan
Karagdagan
Karagdagan

Nakalakip ang code file.

Inirerekumendang: