آموزش رمز سزار در رمزنگاری با پایتون
آموزش رمز سزار در رمزنگاری با پایتون
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش رمز سزار در رمزنگاری با پایتون خواهیم پرداخت.
پیشنهاد ویژه : پکیج آموزش پایتون
الگوریتم رمز سزار
الگوریتم رمز سزار دارای ویژگی های زیر است –
- تکنیک رمز سزار روش ساده و آسان تکنیک رمزگذاری است.
- این رمز ساده است.
- هر حرف از متن ساده با حرفی تغییر می کند که دارای تعدادی موقعیت ثابت با حروف الفبا است.
نمودار زیر نحوه اجرای الگوریتم رمز سزار را نشان می دهد –
اجرای برنامه الگوریتم رمز سزار به شرح زیر است –
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
def encrypt(text,s): result = "" # transverse the plain text for i in range(len(text)): char = text[i] # Encrypt uppercase characters in plain text if (char.isupper()): result += chr((ord(char) + s-65) % 26 + 65) # Encrypt lowercase characters in plain text else: result += chr((ord(char) + s - 97) % 26 + 97) return result #check the above function text = "CEASER CIPHER DEMO" s = 4 print "Plain Text : " + text print "Shift pattern : " + str(s) print "Cipher: " + encrypt(text,s) |
خروجی
می توانید رمز سزار را مشاهده کنید ، همان خروجی است که در تصویر زیر نشان داده شده است –
توضیح کد
- برای هر کاراکتر در متن ساده داده شده ، بسته به روش رمزگذاری و رمزگشایی متن ، کاراکتر داده شده را طبق قانون تغییر دهید.
- پس از دنبال کردن مراحل ، رشته جدیدی تولید می شود که به عنوان متن رمزگذاری شده ارجاع می شود.
هک الگوریتم رمز سزار
متن رمز را می توان با امکانات مختلف هک کرد. یکی از این احتمالات تکنیک Brute Force است که شامل آزمایش همه کلیدهای رمزگشایی ممکن است. این روش تلاش زیادی نمی خواهد و برای یک هکر نسبتاً ساده است.
اجرای برنامه برای هک الگوریتم رمز سزار به شرح زیر است –
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
message = 'GIEWIVrGMTLIVrHIQS' #encrypted message LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' for key in range(len(LETTERS)): translated = '' for symbol in message: if symbol in LETTERS: num = LETTERS.find(symbol) num = num - key if num < 0: num = num + len(LETTERS) translated = translated + LETTERS[num] else: translated = translated + symbol print('Hacking key #%s: %s' % (key, translated)) |
متن رمزگذاری شده را در مثال قبلی رمزگذاری کنید. سپس، خروجی با روش های احتمالی هک با کلید و با استفاده از تکنیک Brute Force به شرح زیر است
دیدگاه شما