Skip to content

Crypto

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

7 modules

ModuleDescription
DekripsiDekripsi data menggunakan enkripsi AES
EnkripsiEnkripsi data menggunakan enkripsi AES
HMACHasilkan tanda tangan HMAC
Buat JWTBuat token JWT yang ditandatangani
Verifikasi JWTVerifikasi dan dekode token JWT
Byte AcakHasilkan byte acak yang aman secara kriptografis
String AcakHasilkan string acak yang aman secara kriptografis

Modules

Dekripsi

crypto.decrypt

Dekripsi data menggunakan enkripsi AES

Parameters:

NameTypeRequiredDefaultDescription
ciphertextstringYes-Data terenkripsi untuk didekripsi
keystringYes-Kunci enkripsi
modeselect (CBC, GCM)NoGCMMode cipher AES (CBC, GCM, dll.)
input_formatselect (base64, hex)Nobase64Format dari ciphertext input (hex atau base64)

Output:

FieldTypeDescription
plaintextstringTeks biasa yang telah didekripsi
algorithmstringAlgoritma yang digunakan untuk dekripsi

Example: Decrypt AES-GCM ciphertext

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

Enkripsi

crypto.encrypt

Enkripsi data menggunakan enkripsi AES

Parameters:

NameTypeRequiredDefaultDescription
plaintextstringYes-Data untuk dienkripsi
keystringYes-Kunci enkripsi
modeselect (CBC, GCM)NoGCMMode cipher AES (CBC, GCM, dll.)
output_formatselect (base64, hex)Nobase64Format untuk ciphertext output (hex atau base64)

Output:

FieldTypeDescription
ciphertextstringCiphertext terenkripsi
algorithmstringAlgoritma yang digunakan untuk enkripsi
modestringMode cipher yang digunakan

Example: Encrypt with AES-GCM

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

HMAC

crypto.hmac

Hasilkan tanda tangan HMAC

Parameters:

NameTypeRequiredDefaultDescription
messagestringYes-Pesan untuk ditandatangani
keystringYes-Pesan untuk ditandatangani
algorithmselect (sha256, sha512, sha1, md5)Nosha256Kunci rahasia untuk HMAC
encodingselect (hex, base64)NohexFormat pengkodean keluaran

Output:

FieldTypeDescription
signaturestringFormat pengkodean keluaran
algorithmstringTanda tangan HMAC

Buat JWT

crypto.jwt_create

Buat token JWT yang ditandatangani

Parameters:

NameTypeRequiredDefaultDescription
payloadobjectYes-Data payload JWT (objek)
secretstringYes-Kunci rahasia untuk menandatangani token
algorithmselect (HS256, HS384, HS512, RS256)NoHS256Algoritma penandatanganan JWT (HS256, RS256, dll.)
expires_innumberNo-Waktu kedaluwarsa token dalam detik
issuerstringNo-Klaim penerbit token
audiencestringNo-Audiens yang dituju untuk token

Output:

FieldTypeDescription
tokenstringToken JWT yang dihasilkan
algorithmstringAlgoritma yang digunakan untuk penandatanganan
expires_atstringStempel waktu kedaluwarsa token

Example: Create a JWT with expiration

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

Verifikasi JWT

crypto.jwt_verify

Verifikasi dan dekode token JWT

Parameters:

NameTypeRequiredDefaultDescription
tokenstringYes-Token JWT untuk diverifikasi
secretstringYes-Kunci rahasia yang digunakan untuk menandatangani token
algorithmsarrayNo['HS256']Algoritma penandatanganan yang diizinkan
verify_expbooleanNoTrueApakah akan memverifikasi klaim kedaluwarsa
audiencestringNo-Klaim audiens yang diharapkan
issuerstringNo-Klaim penerbit yang diharapkan

Output:

FieldTypeDescription
validbooleanApakah token valid
payloadobjectPayload JWT yang telah didekode
headerobjectData header JWT

Example: Verify a JWT token

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

Byte Acak

crypto.random_bytes

Hasilkan byte acak yang aman secara kriptografis

Parameters:

NameTypeRequiredDefaultDescription
lengthnumberYes32Jumlah byte
encodingstringNohexPengkodean keluaran

Output:

FieldTypeDescription
bytesstringByte acak (terkode)
lengthnumberByte acak (terkode)

String Acak

crypto.random_string

Hasilkan string acak yang aman secara kriptografis

Parameters:

NameTypeRequiredDefaultDescription
lengthnumberYes16Panjang string
charsetstringNoalphanumericKarakter yang digunakan
uppercasebooleanNoFalseUbah menjadi huruf besar

Output:

FieldTypeDescription
stringstringUbah menjadi huruf besar
lengthnumberString acak

Released under the Apache 2.0 License.