zetoken
v1.0.0
Published
Zetoken is a Nodejs library for creating simple tokens.
Downloads
17
Maintainers
Readme
Zetoken
Zetoken adalah library Node.js untuk membuat token sederhana.
⚠️ Peringatan Keamanan & Batasan Penggunaan
Zetoken dirancang untuk kebutuhan pribadi pada proyek saya, yaitu untuk melakukan hashing pada ID yang saling terhubung antar chat (General Purpose Token).
Namun, demi mematuhi standar kepatuhan siber global "Don't roll your own crypto", saya dengan ini menyatakan bahwa:
TIDAK COCOK untuk:
- Menyimpan data sangat sensitif (infrastruktur perbankan, kartu kredit, rekam medis)
- Hashing Password (kata sandi utama)
- Sistem keuangan kritikal berskala nasional
SANGAT COCOK untuk:
- Token jawaban kuis atau ujian online
- Token tiket atau voucher akses sementara
- Obfuscation (menyamarkan ID atau parameter URL secara aman)
- Kebutuhan aplikasi non-keuangan lainnya dengan pembuatan token massal
🚀 Fitur Utama
Enkripsi Mengubah data teks menjadi token angka unik
Dekripsi Mengembalikan token angka menjadi data teks asli secara akurat
Keamanan Menggunakan:
keyId(identifier / offset)secretKey(kunci utama)
Sehingga token hanya dapat dibaca oleh pihak yang memiliki kunci yang sama
⚠️ Kelemahan & Limitasi
Harap diperhatikan bahwa Zetoken memiliki beberapa batasan teknis:
Zetoken belum diuji oleh pakar keamanan profesional. Oleh karena itu, untuk mematuhi standar keamanan global, Zetoken belum layak digunakan pada skala finansial, medis, atau infrastruktur kritis.
Usia algoritma yang masih terlalu dini berpotensi menimbulkan celah keamanan zero-day. Oleh karena itu, untuk saat ini Zetoken hanya bisa digunakan untuk hashing pada hal-hal yang bersifat non-risiko atau berisiko rendah.
⚠️ PERINGATAN: WAJIB KONFIGURASI ENV
Library ini TIDAK AKAN BERFUNGSI jika Anda tidak menentukan kunci keamanan.
Zetoken tidak memiliki kunci cadangan demi alasan keamanan. Anda WAJIB menyertakan konfigurasi berikut di dalam file .env proyek Anda:
ZETOKEN_ACCESS_KEY_ID="identitas_unik_anda"
ZETOKEN_SECRET_KEY="kunci_rahasia_anda"
ZETOKEN_ITERATIONS=1000Jika kunci tidak ditemukan di ENV atau parameter fungsi, maka:
- Semua proses enkripsi akan gagal
- Semua proses dekripsi akan gagal
- Fungsi akan langsung mengembalikan nilai:
false
🛠️ Alat Generator
Gunakan alat bantu berikut untuk membuat komponen konfigurasi kriptografi yang resmi dari kami:
🧪 Hasil Uji Stress (100.000 Iterasi)
==================================================
MEMULAI ULTIMATE STRESS TEST: 100000 ITERASI (PURE NODE.JS)
==================================================
Hasil Akhir:
- Total Waktu Eksekusi : 259.74 detik
- Rata-rata Enkripsi : 1.29706 ms
- Rata-rata Dekripsi : 1.29953 ms
- Latensi Terburuk : 100.1416 ms
- Total Kegagalan : 0
- Delta Memori Node.js : 1525.41 KB
==================================================⚙️ Persyaratan Sistem
Pastikan server atau sistem Anda memenuhi standar modern berikut:
- Node.js >= 14.0.0
- Modul bawaan
cryptoNode.js (sudah tersedia secara otomatis, tidak perlu instalasi tambahan).
📦 Instalasi
Gunakan NPM (Node Package Manager):
npm install zetoken
💻 Cara Penggunaan
1. Penggunaan Standar (Otomatis dari ENV)
Metode ini paling simpel karena otomatis mengambil kunci dari .env.
const Zetoken = require('zetoken');
const zetoken = new Zetoken();
// Encode menggunakan KeyID, Secret, & Iterasi dari .env
const token = zetoken.encode("Pesan Rahasia");
// Decode dan kembalikan ke teks asli secara utuh
const asli = zetoken.decode(token);
2. Fitur Sign & VerifySign (Keamanan 3-Lapis / Manual KeyID)
Gunakan fitur ini jika Anda ingin mengikat token secara eksklusif ke suatu entitas (misal: ID User, Nomor Transaksi). Meskipun kuncinya diretas, token User A tidak akan bisa digunakan oleh User B.
const Zetoken = require('zetoken');
const zetoken = new Zetoken();
const userId = "USER-9921";
const data = "Lulus Ujian";
// SIGN: Mengunci token menggunakan kombinasi Master Access Key + userId + Master Secret Key
const token = zetoken.sign(data, userId);
// VERIFY: Token hanya bisa dibuka dan diverifikasi integritasnya jika User ID-nya sama persis
const hasil = zetoken.verifySign(token, userId);
if (hasil === false) {
console.log("Token palsu, termanipulasi, atau KeyID salah!");
}
📄 Lisensi
MIT License
Dibuat oleh Anonputraid
