Mundarija:

Pythonda Qaysar shifrlash dasturi: 4 qadam
Pythonda Qaysar shifrlash dasturi: 4 qadam

Video: Pythonda Qaysar shifrlash dasturi: 4 qadam

Video: Pythonda Qaysar shifrlash dasturi: 4 qadam
Video: Nigina ukasini nima qildi 😱 2024, Noyabr
Anonim
Python -da Caesar shifrlash dasturi
Python -da Caesar shifrlash dasturi

Tsezar shifri - qadimiy va keng qo'llaniladigan shifr bo'lib, uni shifrlash va ochish oson. Bu alifbo harflarini almashtirish orqali butunlay yangi alifbo yaratish uchun ishlaydi (ABCDEF 4 ta harfni almashtirib, EFGHIJga aylanadi).

Tsezar shifrlari bu erda eng xavfsiz shifr emas, lekin maxfiy yozuvlarni yuborish yoki parollarni kuchliroq qilish kabi kichik vazifalar uchun juda yaxshi. Kodni hal qilish juda oson, lekin agar sizda maxsus alifbo yodlanmagan bo'lsa, uni shifrlash zerikarli bo'lishi mumkin.

Bu jarayonni osonlashtirish uchun biz kompyuterlarning kuchidan, aniqrog'i Python dasturlash tilidan foydalanishimiz mumkin.

Bu ko'rsatma sizning buyrug'ingiz bo'yicha xabarlarni shifrga aylantiradigan dasturni qanday yaratishni ko'rsatib beradi.

Ta'minotlar

Sizga faqat Python tarjimoni kerak: IDLE, Pycharm va Thonny - yaxshi, bepul variantlar (men Pycharmdan foydalanganman)

Python haqida asosiy bilimlar

1 -qadam: O'zgaruvchilarni e'lon qilish va ma'lumotlarni olish

O'zgaruvchilarni e'lon qilish va ma'lumotlarni olish
O'zgaruvchilarni e'lon qilish va ma'lumotlarni olish

Alfavit, xabar, siljish va hokazolarning matnli (matnli) qiymatlarini saqlash uchun biz o'zgaruvchilardan foydalanishimiz kerak. Biz "alifbo", "partialOne", "partialTwo" va "newAlphabet" o'zgaruvchilarini e'lon qilishdan boshlaymiz. Men o'z kodimga Camel Case o'zgaruvchilar nomlarini yozdim (birinchi so'z kichik va ikkinchi katta harf), lekin siz uni kodning qolgan qismida o'zgartirishni eslaganingizda xohlagan tarzda yozishingiz mumkin.. Alfavit o'zgaruvchisi "abcdefghijklmnopqrstuvwxyz" qiymatiga ega. Boshqa barcha o'zgaruvchilar "" ga o'rnatiladi, bu bo'sh satr, chunki bizda ularning qiymati hali yo'q.

Bu nima qilayotgani - bu qisman tizimni o'rnatish, biz aynan o'zgarishlarni yaratish uchun foydalanayapmiz. Bu keyingi bosqichda tushuntiriladi.

Shundan so'ng, biz xabarni olishimiz va foydalanuvchidan qiymatni o'zgartirishimiz kerak. Buning uchun biz kirish funktsiyasidan foydalanamiz. Kodning bu qismi foydalanuvchidan xabar va raqamni alifboni o'zgartirishi uchun so'raydi.

KOD:

alifbo = "abcdefghijklmnopqrstuvwxyz"

partialOne = ""

partialTwo = ""

newAlphabet = ""

message = input ("Iltimos, tarjima qilmoqchi bo'lgan xabarni kiriting:").lower ()

key = int (kiritish ("O'zgartirmoqchi bo'lgan raqamni kiriting:")))

2 -qadam: Yangi alifbo yaratish

Yangi alifbo yaratish
Yangi alifbo yaratish

Endi siljigan alifbo yaratish. Buning uchun biz qisman tizimdan foydalanamiz. Qisman tizim - bu kompyuter alifboni ikki qismga ajratadi (qismlarni aytishning xayoliy usuli). Dastlabki qism, siz dasturga o'tishni aytganingizga qancha vaqt qoldi, ikkinchisi - qolgan qismi. Kompyuter qismlarni almashtiradi. Kod aynan shunday qilmoqda, agar birinchi o'zgarish bilan birga, agar o'zgarish 0 bo'lsa, yangi alifbo va eski alifbo bir xil, chunki siz hech narsani almashtirmaysiz.

Masalan:

Tartib - 123456789

Qisman birinchi - 123; Ikkinchi qism - 456789

Yangi ketma -ketlik - 456789123

KOD:

agar kalit == 0 bo'lsa:

newAlphabet = alifbo

elif tugmasi> 0:

partialOne = alifbo [: kalit]

partialTwo = alifbo [kalit:]

newAlphabet = partialTwo + partialOne

boshqa:

partialOne = alifbo [:(26 + tugma)]

partialTwo = alifbo [(26 + tugma):]

newAlphabet = partialTwo + partialOne

3 -qadam: Xabarni o'zgartirish

Xabarni o'zgartirish
Xabarni o'zgartirish

Endi bizda alifbo va yangi alifbo bor. Xabarni kodga almashtirishgina qoldi.

Birinchidan, biz yangi o'zgaruvchini o'rnatamiz va uni "shifrlangan" deb ataymiz va "" ga o'rnatamiz. Keyin biz chindan ham murakkab for-loop yozamiz, u xabarning har bir harfini tekshiradi va uni yangi harfga o'tkazadi. U natijani chiqaradi va u erda sizda muvaffaqiyatli o'zgartirilgan kod bor!

KOD:

encrypted = "" "message_index" diapazonida (0, len (xabar)):

agar xabar [message_index] == "" bo'lsa:

shifrlangan+= ""

uchun alpha_index diapazonida (0, len (newAlphabet)):

agar xabar [message_index] == alifbo [alifbo_indeksi]:

shifrlangan+= yangi alifbo [alifbo_indeksi]

chop etish (shifrlangan)

4 -qadam: qo'shimcha

Qo'shimcha
Qo'shimcha
Qo'shimcha
Qo'shimcha

Kod fayli biriktirilgan.

Tavsiya: