در رمزنگاری آینهای، کدگذاری با جایگزینی هر کاراکتر پیام با کاراکتر آینهای آن در کلید انجام میشود.
یک تابع بنویسید که دو پارامتر دریافت کند؛ یک پیام و یک کلید اختیاری، و پیام کدگذاری شده را برگرداند.
قوانین رمزنگاری:
- کاراکترهای پیام را با کاراکتر آینهای آنها در کلید جایگزین کنید.
مثال:
message = "Mubashir Hassan" key = "edabitisamazing" mirror_cipher(message, key) ➞ "tuzishar hissid"
مرحله اول: همه کاراکترهای پیام را با کاراکتر آینهای آنها در کلید جایگزین کنید.
Mباtجایگزین میشود. (در key حروف “t” و “m” آینه یکدیگر هستند؛ شش کاراکتر از سمت چپ کلید حرف t و شش کاراکتر از سمت راست کلید حرف m است)uهمانuباقی میماند. (چون در کلید نیست)bباzجایگزین میشود. (zکاراکتر آینهایbاست)aباiجایگزین میشود و به همین ترتیب…
مرحله دوم: پیام کدگذاری شده را به صورت حروف کوچک برگردانید:
"tuzishar hissid"
اگر کلید اختیاری ارائه نشود، کل الفبا بهعنوان کلید در نظر گرفته شود (یعنی، key = "abcdefghijklmnopqrstuvwxyz").
نمونه ورودی و خروجی
MirrorCipher("Mubashir Hassan", "edabitisamazing") ➞ "tuzishar hissid"
MirrorCipher("Matt MacPherson") ➞ "nzgg nzxksvihlm"
MirrorCipher("Airforce is best", "pilot") ➞ "aorfirce os besp"
نکات:
- به بزرگ یا کوچک بودن حروف پیام و کلید توجه نکنید.
MirrorCipher("Mubashir Hassan", "edabitisamazing") ➞ "tuzishar hissid"
MirrorCipher("Matt MacPherson") ➞ "nzgg nzxksvihlm"
MirrorCipher("Airforce is best", "pilot") ➞ "aorfirce os besp"
برای ثبت پاسخ خود، ابتدا باید در سایت وارد شوید.
پاسخ های کاربران به این تمرین
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
سلام
چطور باید تصمیم گرفت کدوم رو باید با کدوم از کلید در متن عوض کنیم؟
سلام. از کلیدی که به عنوان پارامتر دوم داده شده باید استفاده کنید. در پیام (که پارامتر اول هست) به هر حرف که میرسید باید در کلید بررسیش کنید. اگر در کلید نبود که خود حرف استفاده میشه. اگر در کلید بود، باید در کلید آینه اون حرف رو پیدا کنید و جایگزین کنید.
برای پیدا کردن آینه هم باید به اندازه ایندکس حرف از سمت مخالف شمارش کنید. مثلاً اگر یک حرف در کلید، حرف سوم هست، حرف سوم از آخر میشه آینه اون حرف.
مثلاً در این کلید:
آینه حرف p حرف t هست. آینه حرف i هم حرف o هست. حالا هر جا در پیام حرف p بود باید با t عوض بشه و برعکس.