بکندباز

در رمزنگاری آینه‌ای، کدگذاری با جایگزینی هر کاراکتر پیام با کاراکتر آینه‌ای آن در کلید انجام می‌شود.

یک تابع بنویسید که دو پارامتر دریافت کند؛ یک پیام و یک کلید اختیاری، و پیام کدگذاری شده را برگرداند.

قوانین رمزنگاری:

  1. کاراکترهای پیام را با کاراکتر آینه‌ای آن‌ها در کلید جایگزین کنید.

مثال:

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"

برای ثبت پاسخ خود، ابتدا باید در سایت وارد شوید.

پاسخ های کاربران به این تمرین

Amin
تصحیح اتوماتیک
‎جاوا اسکریپت‎
2 آذر 1404

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

نظرات

*
*

    DanialMahdik پاسخ

    سلام
    چطور باید تصمیم گرفت کدوم رو باید با کدوم از کلید در متن عوض کنیم؟

      backendbaz پاسخ

      سلام. از کلیدی که به عنوان پارامتر دوم داده شده باید استفاده کنید. در پیام (که پارامتر اول هست)‌ به هر حرف که میرسید باید در کلید بررسیش کنید. اگر در کلید نبود که خود حرف استفاده میشه. اگر در کلید بود، باید در کلید آینه اون حرف رو پیدا کنید و جایگزین کنید. 

      برای پیدا کردن آینه هم باید به اندازه ایندکس حرف از سمت مخالف شمارش کنید. مثلاً اگر یک حرف در کلید،‌ حرف سوم هست، حرف سوم از آخر میشه آینه اون حرف.

      مثلاً در این کلید:

      pilot

      آینه حرف p حرف t هست. آینه حرف i هم حرف o هست. حالا هر جا در پیام حرف p بود باید با t عوض بشه و برعکس.

تمرینات مرتبط