رمز ستونی رمزی برای انتقال پیام های سری است که به این صورت عمل می کند.
فرض کنید این پیام سری ما است:
msg = "Meet me by the lake at midnight. Bring shovel."
1- حروف بزرگ را به حروف کوچک تبدیل کنید و علائم نگارشی و فاصله ها را حذف کنید:
msg = "meetmebythelakeatmidnightbringshovel"
2- سپس، یک کلمه کلیدی که حرف تکراری نداشته باشد انتخاب کنید:
keyword = "python"
3- پیام را به تکه هایی با طول کلمه کلیدی تقسیم کنید و آنها را در ردیف های زیر کلمه کلیدی بنویسید. سپس ستون ها را بر اساس ترتیب حروف الفبای کلمه کلیدی شماره گذاری کنید:
p | y | t | h | o | n |
---|---|---|---|---|---|
m | e | e | t | m | e |
b | y | t | h | e | l |
a | k | e | a | t | m |
i | d | n | i | g | h |
t | b | r | i | n | g |
s | h | o | v | e | l |
4 | 6 | 5 | 1 | 3 | 2 |
4- پیام رمزگذاری شده را به صورت ستونی به ترتیب اعداد ردیف آخر باز نویسی کنید:
ciphertext = "thaiivelmhglmetgnembaitsetenroeykdbh"
نکته: اگر طول پیام مضربی از طول کلمه کلیدی نیست، هر فضای خالی را با “x” پر کنید. مثلا:
msg = "Meet me at midnight."
keyword = "python"
p | y | t | h | o | n |
---|---|---|---|---|---|
m | e | e | t | m | e |
a | t | m | i | d | n |
i | g | h | t | x | x |
تابعی ایجاد کنید که یک رشته و یک کلمه کلیدی بگیرد و متن رمز شده را در خروجی برگرداند.
نمونه ورودی و خروجی
c_cipher("Meet me by the lake at midnight. Bring shovel.", "python") ➞ thaiivelmhglmetgnembaitsetenroeykdbh
c_cipher("Flight 1386 Gate 447 Contact November Bravo", "lockjaw") ➞ ttnvrxi67texhaoobxggcnrxf34amvl84cbo1eteax
c_cipher("Mission Delta Kilo Sierra has been compromised. Kill Steve. Evacuate", "cake") ➞ ioliiabcrsiteuxmieksrsnpiksecesdaoraemmdlvatxsntleheooelevax
self.assertEqual(c_cipher("Meet me by the lake at midnight. Bring shovel.", "python"), "thaiivelmhglmetgnembaitsetenroeykdbh") self.assertEqual(c_cipher("Flight 1386 Gate 447 Contact November Bravo", "lockjaw"), "ttnvrxi67texhaoobxggcnrxf34amvl84cbo1eteax") self.assertEqual(c_cipher("Mission Delta Kilo Sierra has been compromised. Kill Steve. Evacuate", "cake"), "ioliiabcrsiteuxmieksrsnpiksecesdaoraemmdlvatxsntleheooelevax") self.assertEqual(c_cipher("Natural language processing (NLP) enables computers to understand human language.", "white"), "rneegnsutenagxalurslboeushlatlaoiplmrntuaguagcneepsdamnenagpsnactordnu")
پاسخ های کاربران به این تمرین
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
نظرات