• 티스토리 홈
  • 프로필사진
    루루개발자
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
루루개발자
  • 프로필사진
    루루개발자
    • 분류 전체보기 (213)
      • react & next.js (13)
      • Node.js & Javascript & Type.. (24)
        • d3.js (10)
      • 차트 만들기 (1)
      • 티스토리 스킨 개발 (7)
      • 내가 만든 패키지 (3)
      • 내가 만든 CSS (1)
      • CSS (7)
      • 도커 & 쿠버네티스 (3)
      • 개인 프로젝트 (7)
      • 리뷰 & 추천 (2)
      • 알고리즘 (1)
      • IT 기타 (18)
      • 잡동사니 (1)
      • Spring Boot (5)
      • 취미로 그리는 그림들 (120)
      • 개인적인 생각들 (0)
  • 반응형
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • javascript 에서 rsa 암호화, 복호화 하기
        2023년 08월 26일
        • 루루개발자
        • 작성자
        • 2023.08.26.:20
        반응형

        이번 글에서는 javascript 에서 rsa 암호화 및 복호화 하는 방법에 대해 공유드리고자 합니다.

         

        코드 공유

        import { JSEncrypt } from 'jsencrypt';
        
        export function encrypt(data: string, key: string): string {
          const sign = new JSEncrypt();
          sign.setKey(key);
          return sign.encrypt(data).toString();
        }
        
        export function decrypt(encData: string, key: string): string {
          const sign = new JSEncrypt();
          sign.setKey(key);
          return sign.decrypt(encData).toString();
        }

        jsencrypt 라는 패키지를 활용하여 위와 같이 rsa 암호화, 복호화 하는 함수를 작성해본 것을 공유드립니다. typescript 로 작성하였습니다.

         

        rsa 키 생성 방법

        1) 아래 명령어로 private key 를 생성합니다. (keypair_priv.pem 을 변경하여 원하는 파일명으로 하셔도 됩니다.)

        openssl genrsa -out keypair_priv.pem 2048

        2) 아래 명령어로 방금 생성한 private key 의 public key 를 생성합니다.

        openssl rsa -in keypair_priv.pem -pubout -out keypair_pub.crt

         

        Public Key 로 복호화 하는 것은 미작동

        위에 공유드린 javascript 코드를 테스트 해보면, public key 로 암호화 한 것을 private key 로 복호화 하는 것은 정상 작동하지만, private key 로 암호화 한 것을 public key 로 복호화 하는 것은 작동하지 않았습니다. 이론상으로는 가능한 것으로 알고 있어서 혹시나 하는 마음으로 다른 패키지로도 테스트를 해보았지만, 이 역시도 동일한 현상이 발견되었습니다. 이 부분에 대해 자세히 알고 계신 분이 있다면 댓글로 의견 남겨주시면 감사하겠습니다!

        반응형

        'Node.js & Javascript & Typescript' 카테고리의 다른 글

        nvm 으로 node.js 버전 관리하기  (0) 2023.09.14
        javascript 에서 aes256 암호화, 복호화 하기  (1) 2023.07.26
        호이스팅 (hoisting) (2)  (0) 2023.07.22
        타입 가드와 타입 축소에 대하여  (0) 2023.02.08
        package.json 의 버전 표기법 (npm)  (0) 2022.12.24
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바