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