소개
이 랩에서는 주어진 문자열의 각 문자를 알파벳에서 특정 위치만큼 이동시키는 간단한 암호화 알고리즘인 시저 암호 (Caesar cipher) 를 탐구해 보겠습니다. 문자열 조작과 배열 메서드를 조합하여 JavaScript 로 시저 암호를 구현하고, 이 기술을 사용하여 메시지를 암호화하고 해독하는 방법을 배웁니다. 이 랩은 JavaScript 기술을 연습하고 암호화 알고리즘에 대한 이해를 높이는 훌륭한 기회입니다.
이 랩에서는 주어진 문자열의 각 문자를 알파벳에서 특정 위치만큼 이동시키는 간단한 암호화 알고리즘인 시저 암호 (Caesar cipher) 를 탐구해 보겠습니다. 문자열 조작과 배열 메서드를 조합하여 JavaScript 로 시저 암호를 구현하고, 이 기술을 사용하여 메시지를 암호화하고 해독하는 방법을 배웁니다. 이 랩은 JavaScript 기술을 연습하고 암호화 알고리즘에 대한 이해를 높이는 훌륭한 기회입니다.
시저 암호를 사용하려면 다음 단계를 따르세요.
node를 입력하여 코딩 연습을 시작합니다.caesarCipher 함수를 호출합니다.caesarCipher 함수는 모듈로 연산자 (%) 와 삼항 연산자 (?) 를 사용하여 올바른 암호화 또는 해독 키를 계산합니다....) 와 Array.prototype.map()을 사용하여 주어진 문자열의 문자를 반복합니다.String.prototype.charCodeAt() 및 String.fromCharCode()를 사용하여 특수 문자, 공백 등을 무시하고 각 문자를 적절하게 변환합니다.Array.prototype.join()을 사용하여 모든 문자를 문자열로 결합합니다.caesarCipher 함수를 호출할 때 마지막 매개변수인 decrypt에 true를 전달합니다.다음은 caesarCipher 함수의 코드입니다.
const caesarCipher = (str, shift, decrypt = false) => {
const s = decrypt ? (26 - shift) % 26 : shift;
const n = s > 0 ? s : 26 + (s % 26);
return [...str]
.map((l, i) => {
const c = str.charCodeAt(i);
if (c >= 65 && c <= 90)
return String.fromCharCode(((c - 65 + n) % 26) + 65);
if (c >= 97 && c <= 122)
return String.fromCharCode(((c - 97 + n) % 26) + 97);
return l;
})
.join("");
};
다음은 caesarCipher 함수를 사용하는 몇 가지 예입니다.
caesarCipher("Hello World!", -3); // 'Ebiil Tloia!'
caesarCipher("Ebiil Tloia!", 23, true); // 'Hello World!'
축하합니다! 시저 암호 랩을 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.