Biz Python-da Caesar Cipher deb nomlangan shifrlash usullaridan birini ko'rib chiqamiz. Bu kriptografiyaning bir qismi
Download 11.55 Kb.
|
top1 ax
biz Python-da Caesar Cipher deb nomlangan shifrlash usullaridan birini ko'rib chiqamiz. Bu kriptografiyaning bir qismi. Kirish
Python-da qaysar shifrini amalga oshirish uchun algoritm ishlatiladi. Keling, buni aniqlaylik. Qaysarning shifrlash algoritmining o'ziga xos xususiyati Ushbu algoritm quyida keltirilgan bir nechta funktsiyalardan iborat. Usulni qo'llash juda oson. Har bir matn alfavit bo'yicha pastga yoki yuqoriga qarab belgilangan pozitsiya raqami bilan almashtiriladi. Bu almashtirish shifrining oddiy turi. Pastga tushirilgan matnning har bir oxirgi qismini aniqlash uchun butun son qiymati talab qilinadi. Ushbu tamsayı qiymati siljish deb ham ataladi. Ushbu kontseptsiyani modulli arifmetik yordamida birinchi navbatda harfni sxemaga muvofiq raqamlarga aylantirish orqali tasavvur qilishimiz mumkin: A = 0, B = 1, C = 2, D= 3........ Z = 25. N harfini siljitish uchun quyidagi matematik formuladan foydalanish mumkin. Qanday qilib dekodlash kerak? Shifrlash shifrlash bilan bir xil. Biz asl matnni ochish uchun qarama-qarshi yo'l bo'ylab siljishni amalga oshiradigan funktsiyani yaratishimiz mumkin. Biroq, modul ostida shifrning tsiklik xususiyatidan foydalanishimiz mumkin. Cipher(n) = De-cipher(26-n) Xuddi shu funktsiyadan dekodlash uchun foydalanish mumkin. Buning o'rniga biz siljish qiymatini shunday o'zgartiramiz Shift = 26 – siljish. Keling, quyidagi misolni ko'rib chiqaylik – def encypt_func(txt, s): result = "" # transverse the plain txt for i in range(len(txt)): char = txt[i] # encypt_func uppercase characters in plain txt if(char.isupper()): result += chr((ord(char) + s - 64) % 26 + 65) # encypt_func lowercase characters in plain txt else: result += chr((ord(char) + s - 96) % 26 + 97) return result # check the above function txt = "CEASER CIPHER EXAMPLE" s = 4 print("Plain txt : " + txt) print("Shift pattern : " + str(s)) print("Cipher: " + encypt_func(txt, s)) Chiqish: Plain txt : CEASER CIPHER EXAMPLE Shift pattern : 4 Cipher: HJFXJWsHNUMJWsJCFRUQJ Yuqoridagi kod bir vaqtning o'zida belgidan o'tdi. U har bir belgini matnni shifrlash va parolini hal qilish tartibiga qarab qoida bo'yicha uzatdi. Biz shifrlangan matnni yaratadigan bir nechta aniq pozitsiyalar to'plamini aniqladik. Qaysarning shifrlash algoritmini buzish Shifrlangan matnni buzishning turli usullari mavjud. Buning bir usuli-bu parolni hal qilishning barcha mumkin bo'lgan kalitlarini tekshirishni o'z ichiga olgan qo'pol kuch usuli. Ushbu uslub unchalik murakkab emas va ko'p harakat talab etmaydi. Misol –
msg = 'rGMTLIVrHIQSGIEWIVGIEWIV' #encrypted msg LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' for k in range(len(LETTERS)): transformation = '' for s in msg: if s in LETTERS: n = LETTERS.find(s) n = n - k if n < 0: n = n + len(LETTERS) transformation = transformation + LETTERS[n] else: transformation = transformation + s print('Hacking k #%s: %s' %(k, transformation)) Chiqish: Источник: https://pythonpip.ru/examples/shifr-tsezarya-python Download 11.55 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling