Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
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
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
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
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
Kod fayli biriktirilgan.