Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 문자열 암호화하기: 간단한 암호화 알고리즘 구현


문제 상황

JavaScript로 문자열을 입력받아 아래 알고리즘에 따라 암호화하는 함수를 작성해야 합니다.

  • 문자열은 공백으로 구분된 단어들로만 이루어져 있습니다.
  • 문자열 내 각 단어는 다음 규칙에 따라 암호화됩니다.
    • 첫 번째 글자는 해당 문자의 ASCII 코드 값으로 변환합니다.
    • 두 번째 글자마지막 글자와 서로 위치를 교환합니다.

이 규칙을 적용하면 문자열 'good'은 다음과 같이 암호화됩니다.

  • 첫 글자 'g'의 ASCII 코드는 103
  • 두 번째 글자 'o'와 마지막 글자 'd'가 교환되어 'doo'
  • 최종 결과: '103doo'

코드 구현

다음은 위 알고리즘을 구현한 코드입니다.

const str = 'good';
const encyptString = (str = '') => {
   const [first, second] = str.split('');
   const last = str[str.length - 1];
   let res = '';
   res += first.charCodeAt(0);
   res += last;
   for(let i = 2; i < str.length - 1; i++){
      const el = str[i];
      res += el;
   };
   res += second;  
   return res;
};
console.log(encyptString(str));

코드 동작 원리

함수가 처리되는 과정을 단계별로 살펴보면 다음과 같습니다.

  1. str.split('')을 통해 문자열을 개별 문자 배열로 분리한 뒤, 구조 분해 할당으로 첫 번째(first)와 두 번째(second) 문자를 추출합니다.
  2. 인덱스 접근 방식으로 마지막 문자(last)를 가져옵니다.
  3. charCodeAt(0) 메서드로 첫 번째 문자의 ASCII 코드 값을 결과 문자열에 추가합니다.
  4. 마지막 문자를 이어 붙여 두 번째 글자와의 교환 효과를 만듭니다.
  5. 인덱스 2부터 마지막에서 두 번째 위치까지의 중간 문자들을 순회하며 그대로 추가합니다.
  6. 마지막에 두 번째 글자를 덧붙여 암호화된 문자열을 완성하고 반환합니다.

실행 결과

위 코드를 실행하면 콘솔에 다음과 같이 출력됩니다.

103doo

이처럼 charCodeAt() 메서드와 문자열 인덱싱을 활용하면 별도의 외부 라이브러리 없이도 간단한 문자열 암호화 로직을 손쉽게 구현할 수 있습니다.