برنامه نویسی

ساده سازی رمزگذاری متن با الگوریتم ROT13 در جاوا اسکریپت

معرفی:

در دنیای رمزنگاری، الگوریتم ROT13 روشی ساده و در عین حال موثر برای رمزگذاری و رمزگشایی متن است. در این مقاله.

خوب:

  1. در مورد مشکل بحث کنید
  2. یک رویکرد را ترسیم کنید
  3. ارائه یک راه حل گام به گام و ارائه کد.

درک مسئله:

با توجه به یک رشته متن، می خواهیم از الگوریتم ROT13 برای رمزگذاری آن استفاده کنیم. الگوریتم ROT13 هر حرف را با حرفی که 13 موقعیت بعد در الفبا است جایگزین می کند. به عنوان مثال، ‘A’ تبدیل به ‘N’، ‘B’ تبدیل به ‘O’ و غیره می شود. الگوریتم باید حروف را حفظ کند و کاراکترهای غیرالفبایی را بدون تغییر بگذارد.

رویکرد من برای حل این مشکل:

1- ما از متد تطبیق با یک عبارت منظم استفاده می کنیم /[A-Z]/g برای یافتن تمام حروف الفبای بزرگ در رشته. این کاراکترها برای رمزگذاری ROT13 استفاده خواهند شد.

2- در مرحله بعد، رشته ورودی را با استفاده از روش تقسیم به آرایه ای از کاراکترهای جداگانه تقسیم می کنیم.

3- روش نقشه را برای هر کاراکتر آرایه اعمال می کنیم. برای هر کاراکتر با استفاده از charCodeAt آن را به کد یونیکد آن تبدیل می کنیم.

4- در داخل تابع نقشه، بررسی می کنیم که آیا کاراکتر فعلی در آرایه حروف الفبا گنجانده شده است.
اگر اینطور باشد، کد جدید را بر اساس اینکه کد فعلی کمتر از 78 باشد (که با حرف N در یونیکد مطابقت دارد) تعیین می کنیم.
اگر کد کمتر از 78 باشد، 13 را به آن اضافه می کنیم. در غیر این صورت 13 را از آن کم می کنیم.
این کاراکتر را به طور موثر 13 موقعیت در حروف الفبا می چرخاند.

5- کد اصلاح شده را با استفاده از String.fromCharCode به کاراکتر مربوطه تبدیل می کنیم.

6- در نهایت، همه کاراکترها را با استفاده از متد join به یک رشته متصل می کنیم و رشته رمزگذاری شده را برمی گردانیم.

راه حل من:

function rot13(str) {
  let alphabeticCharacter = str.match(/[A-Z]/g);
  str = str
    .split("")
    .map((item) => {
      let code = item.charCodeAt();

      if (alphabeticCharacter.includes(item)) {
        code = code < 78
          ? item.charCodeAt(0) + 13
          : item.charCodeAt(0) - 13;
      }

      return String.fromCharCode(code);
    })
    .join("");

  return str;
}

rot13("SERR CVMMN!");
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اگر سوال یا بازخوردی دارید، لطفاً آنها را در نظرات به اشتراک بگذارید. ممنون که اینجا هستید!

درباره نویسنده:

محمد عود یک توسعه دهنده پرشور جاوا اسکریپت با تخصص در حل مسئله و توسعه وب است. او سابقه قوی در ارائه پروژه های با کیفیت بالا دارد و از مقابله با پازل های چالش برانگیز برنامه نویسی لذت می برد. می توانید کارهای بیشتری از محمد کشف کنید و در لینکدین و گیت هاب با او ارتباط برقرار کنید.

در تماس باشید:

اگر فرصت‌های توسعه جاوا اسکریپت، همکاری در پروژه دارید، یا می‌خواهید در مورد موضوعات مرتبط با فناوری بحث کنید، در صورت تمایل به آدرس muhmmad.awd@gmail.com مراجعه کنید. مشتاقانه منتظر شنیدن نظرات شما و بررسی همکاری های بالقوه است.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید
بستن
دکمه بازگشت به بالا