কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে স্ট্রিং এনক্রিপশন (সিজার সাইফার)


সমস্যা বিবরণ

একটি স্ট্রিং এবং একটি শিফট নম্বর দেওয়া আছে। প্রতিটি অ্যালফাবেটকে শিফট만큼 আগে নেওয়া হবে (wraparound সহ)। নন-অ্যালফাবেট ক্যারেক্টার অপরিবর্তিত থাকবে।

সমাধান

const str = 'this is a str';

const encryptString = (str = '', num = 1) => {
  const alphabet = "abcdefghijklmnopqrstuvwxyz".split("");
  str = str.toLowerCase();
  let res = "";
  for (let i = 0; i < str.length; i++) {
    const letter = str[i];
    if (alphabet.indexOf(letter) === -1) {
      res += letter;
      continue;
    }
    let index = alphabet.indexOf(letter) + num % 26;
    if (index > 25) index -= 26;
    if (index < 0) index += 26;
    if (str[i] === str[i].toUpperCase()) {
      res += alphabet[index].toUpperCase();
    } else {
      res += alphabet[index];
    }
  }
  return res;
};

console.log(encryptString(str, 4)); // xlmw mw e wxv

আউটপুট

xlmw mw e wxv

ব্যাখ্যা

  • সিজার সাইফার (Caesar Cipher) বেসিক এনক্রিপশন।
  • num % 26 দিয়ে বড় শিফট হ্যান্ডেল করা হয়েছে।
  • কেস সংরক্ষণ করা হয়েছে (toUpperCase চেক করে)।
  • নন-অ্যালফাবেট (স্পেস, পাংচুয়েশন) অপরিবর্তিত থাকে।
  1. জাভাস্ক্রিপ্টে সার্কুলার স্ট্রিংয়ে ইউনিক সাবস্ট্রিং গণনা করা

  2. জাভাস্ক্রিপ্টে টাইম স্ট্রিং রেক্টিফাই করা (HH:MM:SS)

  3. জাভাস্ক্রিপ্টে স্ট্রিং এনক্রিপশন (অ্যালগরিদম-ভিত্তিক) - ভার্সন ২

  4. জাভাস্ক্রিপ্টে স্ট্রিংকে নির্দিষ্ট দৈর্ঘ্যে সীমাবদ্ধ করা