رمز ستونی رمزی برای انتقال پیام های سری است که به این صورت عمل می کند.
فرض کنید این پیام سری ما است:
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") پاسخ های کاربران به این تمرین
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
نظرات