Skip to content

Crypto

AES encryption/decryption, HMAC, JWT tokens, and secure random generation.

7 modules

ModuleDescription
복호화AES 암호화를 사용하여 데이터 복호화
암호화AES 암호화를 사용하여 데이터 암호화
HMACHMAC 서명 생성
JWT 생성서명된 JWT 토큰 생성
JWT 검증JWT 토큰 검증 및 디코딩
랜덤 바이트암호학적으로 안전한 랜덤 바이트 생성
랜덤 문자열암호학적으로 안전한 랜덤 문자열 생성

Modules

복호화

crypto.decrypt

AES 암호화를 사용하여 데이터 복호화

Parameters:

NameTypeRequiredDefaultDescription
ciphertextstringYes-복호화할 암호화된 데이터
keystringYes-암호화 키
modeselect (CBC, GCM)NoGCMAES 암호 모드 (CBC, GCM 등)
input_formatselect (base64, hex)Nobase64입력 암호문의 형식 (hex 또는 base64)

Output:

FieldTypeDescription
plaintextstring복호화된 평문
algorithmstring복호화에 사용된 알고리즘

Example: Decrypt AES-GCM ciphertext

yaml
ciphertext: <base64-encoded-ciphertext>
key: my-secret-passphrase
mode: GCM

암호화

crypto.encrypt

AES 암호화를 사용하여 데이터 암호화

Parameters:

NameTypeRequiredDefaultDescription
plaintextstringYes-암호화할 데이터
keystringYes-암호화 키
modeselect (CBC, GCM)NoGCMAES 암호 모드 (CBC, GCM 등)
output_formatselect (base64, hex)Nobase64출력 암호문의 형식 (hex 또는 base64)

Output:

FieldTypeDescription
ciphertextstring암호화된 암호문
algorithmstring암호화에 사용된 알고리즘
modestring사용된 암호 모드

Example: Encrypt with AES-GCM

yaml
plaintext: Hello, World!
key: my-secret-passphrase
mode: GCM

HMAC

crypto.hmac

HMAC 서명 생성

Parameters:

NameTypeRequiredDefaultDescription
messagestringYes-서명할 메시지
keystringYes-서명할 메시지
algorithmselect (sha256, sha512, sha1, md5)Nosha256HMAC의 비밀 키
encodingselect (hex, base64)Nohex출력 인코딩 형식

Output:

FieldTypeDescription
signaturestring출력 인코딩 형식
algorithmstringHMAC 서명

JWT 생성

crypto.jwt_create

서명된 JWT 토큰 생성

Parameters:

NameTypeRequiredDefaultDescription
payloadobjectYes-JWT 페이로드 데이터 (객체)
secretstringYes-토큰 서명을 위한 비밀 키
algorithmselect (HS256, HS384, HS512, RS256)NoHS256JWT 서명 알고리즘 (HS256, RS256 등)
expires_innumberNo-토큰 만료 시간 (초)
issuerstringNo-토큰 발급자 클레임
audiencestringNo-토큰의 대상

Output:

FieldTypeDescription
tokenstring생성된 JWT 토큰
algorithmstring서명에 사용된 알고리즘
expires_atstring토큰 만료 타임스탬프

Example: Create a JWT with expiration

yaml
payload: {"sub": "user123", "role": "admin"}
secret: my-jwt-secret
algorithm: HS256
expires_in: 3600

JWT 검증

crypto.jwt_verify

JWT 토큰 검증 및 디코딩

Parameters:

NameTypeRequiredDefaultDescription
tokenstringYes-검증할 JWT 토큰
secretstringYes-토큰 서명에 사용된 비밀 키
algorithmsarrayNo['HS256']허용된 서명 알고리즘
verify_expbooleanNoTrue만료 클레임을 검증할지 여부
audiencestringNo-예상되는 대상 클레임
issuerstringNo-예상 발행자 클레임

Output:

FieldTypeDescription
validboolean토큰이 유효한지 여부
payloadobject디코딩된 JWT 페이로드
headerobjectJWT 헤더 데이터

Example: Verify a JWT token

yaml
token: eyJhbGciOiJIUzI1NiIs...
secret: my-jwt-secret
algorithms: ["HS256"]
verify_exp: true

랜덤 바이트

crypto.random_bytes

암호학적으로 안전한 랜덤 바이트 생성

Parameters:

NameTypeRequiredDefaultDescription
lengthnumberYes32바이트 수
encodingstringNohex출력 인코딩

Output:

FieldTypeDescription
bytesstring랜덤 바이트 (인코딩됨)
lengthnumber랜덤 바이트 (인코딩됨)

랜덤 문자열

crypto.random_string

암호학적으로 안전한 랜덤 문자열 생성

Parameters:

NameTypeRequiredDefaultDescription
lengthnumberYes16문자열 길이
charsetstringNoalphanumeric사용할 문자
uppercasebooleanNoFalse대문자로 변환

Output:

FieldTypeDescription
stringstring대문자로 변환
lengthnumber랜덤 문자열

Released under the Apache 2.0 License.