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