Cara Aman Simpan Seed Phrase: AES-256 Encryption untuk Bot

Jangan simpan seed phrase di plain text! Tutorial ini ajarkan cara encrypt wallet seed phrase dengan AES-256-GCM untuk bot automation kamu.

Mengapa Plain Text Berbahaya?

Seed phrase di file .txt atau .env tanpa enkripsi itu seperti naruh kunci rumah di depan pintu. Siapa pun yang akses server kamu — baik itu hacker, malware, atau bahkan teman yang iseng — bisa ambil semua wallet kamu dalam hitungan detik.

Kasus nyata: banyak bot developer yang kehilangan dana karena seed phrase tersimpan plain text di GitHub repo yang ke-private-nya salah setting, atau di server yang kena breach.

AES-256-GCM: Standar Emas

AES-256-GCM (Galois/Counter Mode) adalah enkripsi yang sama dipakai oleh bank dan militer. Fitur utama:

Implementasi di Node.js

const crypto = require('crypto');

const ALGO = 'aes-256-gcm';
const KEY = crypto.scryptSync(process.env.MASTER_PASSWORD, 'lyid-salt', 32);

function encryptSeed(seedPhrase) {
  const iv = crypto.randomBytes(16);
  const cipher = crypto.createCipheriv(ALGO, KEY, iv);
  let encrypted = cipher.update(seedPhrase, 'utf8', 'hex');
  encrypted += cipher.final('hex');
  const tag = cipher.getAuthTag().toString('hex');
  return { iv: iv.toString('hex'), tag, data: encrypted };
}

function decryptSeed(encrypted) {
  const decipher = crypto.createDecipheriv(
    ALGO, KEY,
    Buffer.from(encrypted.iv, 'hex')
  );
  decipher.setAuthTag(Buffer.from(encrypted.tag, 'hex'));
  let decrypted = decipher.update(encrypted.data, 'hex', 'utf8');
  decrypted += decipher.final('utf8');
  return decrypted;
}

Penyimpanan yang Aman

Struktur File

project/
├── config.json          # tidak ada seed phrase di sini
├── wallets.encrypted.json  # hasil encrypt
├── .encryption_key      # master key (gitignore!)
└── .gitignore           # *.encrypted.json, .encryption_key

Format wallets.encrypted.json

{
  "wallets": [
    {
      "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD38",
      "encrypted_seed": {
        "iv": "a1b2c3...",
        "tag": "d4e5f6...",
        "data": "encrypted_hex_string..."
      }
    }
  ]
}
⚠️ Master password harus kuat! Minimal 20 karakter, campur huruf besar/kecil, angka, simpan di password manager (bukan di file). Kalau master password lemah, enkripsi AES-256 jadi sia-sia.

Best Practices

  1. Ambil key dari environment variableprocess.env.MASTER_PASSWORD, bukan hardcoded
  2. Backup encrypted file — simpan di 2-3 tempat berbeda (cloud + lokal)
  3. Gitignore semua yang sensitif — .encryption_key, .env, wallets.*.json
  4. Rotate key berkala — decrypt semua, generate key baru, re-encrypt
  5. Test decrypt sebelum deploy — pastikan proses encrypt-decrypt berjalan benar

Contoh di LYID Wallet Hub

LYID Wallet Hub menggunakan AES-256-GCM untuk manage 13.000+ seed phrase. Setiap wallet di-encrypt secara individual dengan IV unik. Master key tersimpan di .encryption_key yang permission-nya dibatasi ke owner saja.

💡 Automasi: Di bot automation, decrypt seed phrase hanya saat mau sign transaction. Setelah itu, langsung hapus dari memory. Jangan simpan decrypted seed di variabel lebih dari yang dibutuhkan.

Butuh Bot Automasi?

LYID menyediakan bot airdrop siap pakai dengan fitur multi-wallet, auto-claim, dan anti-detect.

Chat di @OG_LYID_bot Lihat Semua Script →
Manday
Manday

Founder LYID — Layer Airdrop ID. Membangun bot automasi crypto sejak 2024.