پیاده سازی الگوریتم رمزنگاری ROT 13 در پایتون :: Mr Python | مستر پایتون

پیاده سازی الگوریتم رمزنگاری ROT 13 در پایتون

  • ۷۶۲

پیاده سازی الگوریتم رمزنگاری ROT 13 در پایتون

درود به همه !

 

در پست امشب یاد میگیریم چطوری الگوریتم دوست داشتنی rot 13 رو با پایتون پیاده سازی کنیم .

پیشنیاز این پست هم آشنا بودن با زبان پایتون هستش .

rot 13 چیه ؟ rot 13 یه الگوریتم رمز نگاریه کلاسیکه که در واقع از روش جایگذاری حروف استفاده میکنه . روش کار این الگوریتم اینه که هر حرف زبان انگلیسی رو با سیزدهمین حرف بعد از خودش جایگذین میکنه و متن ما رمز شده میشه . برای مثلا کلمه ی Hossein وقتی با این الگوریتم رمز شود به صورت Ubffrva در می آید . در قدیم از این روش ها برای انتقال متن های محرمانه استفاده میکردند تا کسی غیر از مقصد نتواند آن ها را بخواند البته این الگوریتم امروزه خنده دار است :) ولی خب پیاده سازیش تو پایتون تمرین خوبیه .

جالبه بدونید این الگوریتم در یه قسمتی از سریال مستر ربات هم استفاده شد ولی دقیق یادم نیست کجاش :)

 

حالا دیدیم که برای رمز کردن حروف کافیه هر حرف رو با سیزدهمین حرف بعد از خودش جایگذین کنیم. برای رمز گشایی متن رمز شده نیز کافیست باز همین کار رو بکنیم یعنی هر حرف رو با سیزدهمین حرف بعد از خودش جایگذین کنیم و چون حروف انگلیسی ۲۶ تا است و ۱۳ وسط ۲۶ است بنا بر این دوباره کلمه ی اصلی ساخته میشود .

 

خب بریم سراغ پیاده سازی این الگوریتم در پایتون . برای اینکار یک فایل پایتونی بسازید مثلا rot13.py . تفاوتی در لینوکس و ویندوز ندارد این پروژه بر روی هر دو سیستم عامل قابل پیاده سازی است . در واقع بر روی هر سیستم عاملی که مفسر پایتون دارد قابل پیاده سازی است .

 

خب بعد از ساختن این فایل پایتونی باید کد های زیر رو داخلش بنویسیم .

 

def rot13(text):
    trans = text.maketrans("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" , "nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM")
    text = text.translate(trans)
    return text

while True :    
    text = input("text : ")
    text = rot13(text)
    print(text)

 

خب یه توضیح در مورد کد بدیم .

همینطور که میبینید کد خیلی سادس . اول یه تابع تعریف کردیم به نام rot13 که یه ورودی به نام text میگیره و این ورودی در واقع همون متن ما هست . سپس روی این ورودی عمل جایگذاری حروف رو انجام میده یعنی به وسیله ی تابع translate که میبینید هر حرف داخل text رو با سیزدهمین حرف بعد از خودش جایگذین میکنه . و بعدش هم که اونو با return بر میگردونه .

 

بعدش یه حلقه while بی نهایت نوشتیم که همش یه ورودی از کاربر میگیره و همون متن کاربره و اونو میده به تابع rot13 و خروجیش رو چاپ میکنه . به همین سادگی .

 

امیدوارم کد ها واضح بوده باشن .

 

روش های بسیار دیگری هم برای پیاده سازی این الگوریتم هست . سوالی بود در بخش نظرات مطرح کنید .

 

یا حق !

نظرات: (۰) هیچ نظری هنوز ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی