반응형
회사에서 서버 개발을 하다가, 모바일 API 전문 암호화 요구사항이 있어서 AES256 암호화 및 복호화 코드를 만들고 사용하고 있다. 코드는 다음과 같다 (Typescript 사용 중).
import * as Crypto from 'crypto';
/**
* AES Algorithm Based Data Encrypt Function
* @param secretKey - Encrypt Key
* @param plainText - The Data Of To Be Encrypt
*/
export const encryptWithAES256 = (secretKey: string, plainText: string): string => {
const secretKeyToByteArray: Buffer = Buffer.from(secretKey, 'utf8');
const ivParameter: Buffer = Buffer.from(secretKey.slice(0, 16));
const cipher: Crypto.Cipher = Crypto.createCipheriv('aes-256-cbc', secretKeyToByteArray, ivParameter);
let encryptedValue: string = cipher.update(plainText, 'utf8', 'base64');
encryptedValue += cipher.final('base64');
return encryptedValue;
};
/**
* AES Algorithms Based Data Decrypt Function
* @param secretKey - Decrypt Key
* @param encryptedText - The Data To Decrypted
*/
export const decryptWithAES256 = (secretKey: string, encryptedText: string): string => {
const secretKeyToBufferArray: Buffer = Buffer.from(secretKey, 'utf8');
const ivParameter: Buffer = Buffer.from(secretKey.slice(0, 16));
const cipher: Crypto.Decipher = Crypto.createDecipheriv('aes-256-cbc', secretKeyToBufferArray, ivParameter);
let decryptedValue: string = cipher.update(encryptedText, 'base64', 'utf8');
decryptedValue += cipher.final('utf8');
return decryptedValue;
};
반응형
'Programming > Nodejs' 카테고리의 다른 글
[NodeJS] APK 파싱 (2) | 2019.06.03 |
---|---|
[NestJS] AWS S3 Image Upload (0) | 2019.06.03 |
[NestJS 기반 게시판 REST API 만들기] 3. 회원가입 및 로그인, 파라미터 검증 및 예외 처리 (6) | 2019.05.08 |
[NestJS 기반 게시판 REST API 만들기] 2. 회원가입 및 로그인 기능 을 위한 DB 연동 (3) | 2019.04.30 |
[NestJS 기반 게시판 REST API 만들기] 1. 프로젝트 환경 구축 (12) | 2019.04.17 |