Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 Caesar Cipher를 사용하여 문자열 암호화

<시간/>

Caesar 암호 알고리즘

Caesar Cipher 알고리즘은 가장 간단하고 널리 알려진 암호화 기술 중 하나입니다. 이것은 일반 텍스트의 각 문자가 알파벳 아래의 고정된 수의 문자로 대체되는 일종의 대체 암호입니다.

예를 들어

왼쪽 시프트가 3이면 D가 A로 바뀌고 E가 B가 되는 식입니다. 암호화할 문자열을 첫 번째 인수로, shift 양을 두 번째 인수로 취하는 JavaScript 함수를 작성해야 합니다.

이동량은 양수 또는 음의 정수일 수 있습니다(양수 이동은 오른쪽으로 이동을 의미하고 음수는 왼쪽으로 이동을 의미합니다).

예시

다음은 코드입니다 -

const str = 'thisIsAString';
const getMap = (legend, shift) => {
   return legend.reduce((charsMap, currentChar, charIndex) => {
      const copy = { ...charsMap };
      let ind = (charIndex + shift) % legend.length;
      if (ind < 0) {
         ind += legend.length;
      };
      copy[currentChar] = legend[ind];
      return copy;
   }, {});
};
const encrypt = (str, shift = 0) => {
   const legend = 'abcdefghijklmnopqrstuvwxyz'.split('');
   const map = getMap(legend, shift);
   return str
   .toLowerCase()
   .split('')
   .map(char => map[char] || char)
   .join('');
};
console.log(encrypt(str, 6));

출력

다음은 콘솔의 출력입니다 -

znoyoygyzxotm