Sisukord:
- Tarvikud
- Samm: muutujate deklareerimine ja sisendite hankimine
- 2. samm: uue tähestiku loomine
- Samm: sõnumi nihutamine
- 4. samm: täiendav
Video: Caesari šifriprogramm Pythonis: 4 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:45
Caesari šifr on iidne ja laialdaselt kasutatav šifr, mida on lihtne krüptida ja dekrüpteerida. See toimib tähestiku tähtede nihutamisega, et luua täiesti uus tähestik (ABCDEF võib nihutada üle 4 tähe ja muutuda EFGHIJ -ks).
Caesar Ciphers ei ole kõige turvalisemad šifrid, kuid sobivad hästi väikesteks ülesanneteks, näiteks salajaste märkmete edastamiseks või paroolide pisut tugevamaks muutmiseks. Koodi dešifreerimine on tõesti lihtne, kuid selle krüptimine võib olla tüütu, kui teil pole spetsiaalset tähestikku meelde jäetud.
Selle protsessi lihtsustamiseks saame kasutada arvutite võimsust, täpsemalt programmeerimiskeelt Python.
See juhend annab teile teada, kuidas luua programm, mis teisendab teie käsul sõnumid šifriks.
Tarvikud
Kõik, mida vajate, on Pythoni tõlk: IDLE, Pycharm ja Thonny on mõned head tasuta valikud (ma kasutasin Pycharmi)
Põhiteadmised Pythonist
Samm: muutujate deklareerimine ja sisendite hankimine
Tähestiku, sõnumi, nihke jne stringi (teksti) väärtuste tegelikuks salvestamiseks peame kasutama muutujaid. Alustuseks deklareerime muutujad „tähestik”, „osaline üks”, „osaline kaks” ja „uus tähestik”. Olen koodis Camel Case muutujate nimed kirjutanud (esimene sõna on väiketäht ja teine suur), kuid võite selle kirjutada nii, nagu soovite, kui mäletate seda ka kogu ülejäänud koodis muuta. Tähestiku muutuja väärtus on "abcdefghijklmnopqrstuvwxyz". Kõik muud muutujad on seatud väärtusele "", mis on tühi string, kuna meil pole veel nende väärtusi.
See on osalise süsteemi seadistamine, mida me tegelikult kasutame vahetuse loomiseks. Seda selgitatakse hilisemas etapis.
Pärast seda peame kasutajalt sõnumi kätte saama ja väärtust nihutama. Selleks kasutame sisendfunktsiooni. See koodi osa küsib kasutajalt sõnumit ja numbrit tähestiku nihutamiseks.
KOOD:
tähestik = "abcdefghijklmnopqrstuvwxyz"
partialOne = ""
partTwo = ""
newAlphabet = ""
message = input ("Palun sisestage sõnum, mida soovite tõlkida:").lower ()
võti = int (sisend ("Palun sisestage number, mille võrra soovite nihutada:"))
2. samm: uue tähestiku loomine
Nüüd nihutatud tähestiku loomiseks. Selleks kasutame osalist süsteemi. Osaline süsteem on see, kus arvuti jagab tähestiku kaheks osaks (väljamõeldud viis osade ütlemiseks). Esimene osa on siiski pikk, kui te ütlesite programmile, et see nihkub, ja teine osa on ülejäänud. Arvuti vahetab osasid. See on täpselt see, mida kood teeb koos esimese avaldusega, mis ütleb, et kui nihe on 0, on uus tähestik ja vana tähestik samad, kuna te ei vaheta midagi.
Näiteks:
Järjestus - 123456789
Üks osa - 123; Teine osa - 456789
Uus jada - 456789123
KOOD:
kui võti == 0:
newAlphabet = tähestik
elif võti> 0:
partialOne = tähestik [: võti]
partsTwo = tähestik [võti:]
newAlphabet = osalineKaks + osalineÜks
muidu:
osaline Üks = tähestik [:(26 + võti)]
partsTwo = tähestik [(26 + klahv):]
newAlphabet = osalineKaks + osalineÜks
Samm: sõnumi nihutamine
Nüüd on meil oma tähestik ja uus tähestik. Jääb vaid sõnum koodiks muuta.
Esiteks seadsime uue muutuja ja nimetame selle "krüpteeritud" ja määrame selle väärtusele "". Seejärel kirjutame tõeliselt keerulise for-loopi, mis kontrollib sõnumi iga tähte ja lülitab selle uuele tähele. See väljastab tulemuse ja seal on see, edukalt teisendatud kood!
KOOD:
encrypted = "" sõnumi_indeksi jaoks vahemikus (0, len (sõnum)):
kui sõnum [message_index] == "":
krüptitud+= ""
tähestiku_indeksi jaoks vahemikus (0, len (uus tähestik)):
kui sõnum [teate_indeks] == tähestik [tähestiku_indeks]:
krüptitud+= uus tähestik [tähestiku_indeks]
printimine (krüpteeritud)
4. samm: täiendav
Lisatud on koodifail.
Soovitan:
QR -koodi skanner OpenCV kasutamine Pythonis: 7 sammu
QR-koodi skanner OpenCV kasutamine Pythonis: Tänapäeva maailmas näeme, et QR-koodi ja vöötkoodi kasutatakse peaaegu kõikjal, alates toote pakendamisest kuni veebimakseteni, ja tänapäeval näeme menüü nägemiseks isegi restoranis QR-koode. kahtlen, et see on nüüd suur mõte. Kuid kas olete kunagi häbenenud
Niiskuse ja temperatuuri vaatleja, kes kasutab Raspberry Pi koos SHT25 -ga Pythonis: 6 sammu
Niiskuse ja temperatuuri vaatleja, kes kasutab Raspberry Pi koos SHT25 -ga Pythonis: olles Raspberry Pi entusiast, mõtlesime sellega mõnele suurejoonelisemale eksperimendile. Selles kampaanias teeme niiskuse ja temperatuuri vaatleja, mis mõõdab suhtelist niiskust ja temperatuuri Vaarika Pi abil ja SHT25, Humidi
MIDI trummikomplekt Pythonis ja Arduinos: 5 sammu (koos piltidega)
MIDI trummikomplekt Pythonil ja Arduino: Tahtsin lapsest saati alati trummikomplekti osta. Siis ei olnud kõigil muusikaseadmetel kõiki digitaalseid rakendusi, nagu meil täna on palju, seega olid hinnad koos ootustega liiga kõrged. Hiljuti otsustasin osta endale
Temperatuuri muutuse graafik kliimamuutustest Pythonis: 6 sammu
Temperatuuri muutuse joonistamine kliimamuutustest Pythonis: kliimamuutused on suur probleem. Ja paljud inimesed ei tea praegu, kui palju see on tõusnud. Selles juhendis joonistame kliimamuutustest tingitud kliimamuutuste graafiku. Pettuslehe jaoks saate vaadata allpool olevat pythoni faili
Tehke Pythonis tõeliselt lahe maatriks!: 6 sammu
Tehke Pythonis tõeliselt lahe maatriks!: Tere poisid! See juhend õpetab teile, kuidas Pythonis maatriksit teha! Tavaliselt teeksid inimesed Batchis maatriksi, sest see on lihtne. Kuid seekord näitan teile, kuidas teha maatriksit mõjusas arvutikeeles