syn.$c: base64, sha256, HMAC, RSA, AES 및 LZString 압축 등 암호화 기능을 제공합니다.

브라우저에서는 WebCrypto(SubtleCrypto) API를 사용합니다. Node.js 환경(devicePlatform === 'node')에서는 Buffer 기반으로 동작하는 별도 경로가 내부에 구현되어 있습니다.

메서드

현재 브라우저가 WebCrypto(SubtleCrypto)를 지원하는지 여부를 반환합니다.
일반 문자열을 base64 문자열로 인코딩 합니다.
base64 문자열을 일반 문자열로 디코딩 합니다.
일반 문자열을 UTF-8 바이트 배열(Uint8Array)로 인코딩 합니다.
콤마로 구분된 UTF-8 바이트 코드 문자열을 일반 문자열로 디코딩 합니다.
키 문자열을 지정된 길이(byte)로 잘라내거나 0으로 채워 반환합니다. AES/IV 키 생성에 내부적으로 사용됩니다.
콤마로 구분된 숫자 배열을 ArrayBuffer로 변환합니다.
WebCrypto digest를 사용해 지정한 알고리즘(SHA-1, SHA-256, SHA-384, SHA-512 등)으로 해시 값을 반환합니다.
순수 자바스크립트 구현으로 문자열의 SHA-256 해시 값을 동기적으로 반환합니다.
HMAC-SHA256 서명을 생성(generateHMAC)하고, 생성된 서명이 유효한지 검증(verifyHMAC)합니다.
RSA-OAEP 키 쌍을 생성(generateRSAKey)하고 PEM 형식으로 내보낸(exportCryptoKey) 뒤, 다시 CryptoKey로 가져옵니다(importCryptoKey).
위에서 생성한 RSA 공개키/개인키로 문자열을 암호화(rsaEncode)/복호화(rsaDecode)합니다.
AES 암호화에 사용할 초기화 벡터(IV)를 생성합니다. 키에 '$RANDOM$'을 입력하면 난수 IV를 생성합니다.
AES-CBC(256bit) 알고리즘으로 문자열을 암호화(aesEncode)/복호화(aesDecode)합니다. algorithm에 'AES-GCM'을 전달하면 GCM 모드도 사용할 수 있습니다.
간단한 대칭키 방식으로 문자열을 암호화(encrypt)/복호화(decrypt)합니다. WebCrypto 없이 사용 가능한 경량 구현입니다.
문자열을 LZString 알고리즘으로 압축합니다. 결과 형식에 따라 base64, UTF-16, URI 컴포넌트로 인코딩할 수 있습니다.
LZString으로 압축된 문자열을 각 인코딩 형식에 맞게 원래 문자열로 해제합니다.