1. Tentang AegisChat

AegisChat adalah aplikasi chat real-time dengan enkripsi ujung-ke-ujung (E2EE) yang kuncinya Anda pegang sendiri, mirip PGP tapi berbentuk antarmuka chat.

Prinsip utama: server tidak tahu isi pesan Anda. Server hanya menerima, meneruskan, dan menyimpan ciphertext (teks acak). Kunci rahasia (Secret Key) tidak pernah dikirim ke server.

2. Registrasi Akun & Verifikasi OTP

  • Buka halaman depan (/) — Anda disambut form registrasi.
  • Isi Username, Email, dan Password (minimal 6 karakter).
  • Pilih avatar emoji sebagai identitas visual akun Anda.
  • Klik tombol registrasi. Sistem mengirim kode OTP 6 digit ke email Anda.
  • Buka email, salin kode OTP, masukkan di halaman verifikasi, lalu klik verifikasi.

⚠️ Kode OTP berlaku 10 menit dan hanya bisa dipakai sekali. Kalau kedaluwarsa, minta kode baru atau daftar ulang.

3. Login

  • Buka /login.
  • Masukkan Username atau Email dan Password.
  • Klik LOGIN. Berhasil → langsung diarahkan ke halaman Chat.

Sudah login sebelumnya? Buka /login lagi dan Anda otomatis dialihkan ke halaman chat (sesi disimpan di browser).

Pesan error dari server ditampilkan dalam Bahasa Indonesia bila Anda memakai antarmuka Indonesia.

4. Lupa Password

  • Di halaman login, klik Forgot Password?.
  • Masukkan email akun Anda.
  • Cek email: kode OTP 6 digit akan dikirim.
  • Masukkan OTP, lalu tentukan password baru (min. 6 karakter).
  • Login dengan password baru.

5. Beranda & Daftar Percakapan

Beranda adalah halaman pertama setelah login. Di sini semua percakapan Anda terkumpul.

  • Setiap baris menampilkan lawan bicara/grup, cuplikan pesan terakhir, dan waktunya.
  • Klik baris untuk membuka percakapan tersebut.
  • Ikon mata dicoret di kanan baris untuk menyembunyikan percakapan dari beranda (lihat bagian Sembunyikan Percakapan).

Navigasi bawah/atas: Beranda, Chat, Kontak, Profil, dan Panduan. Bar status menampilkan waktu lokal Anda dan username yang sedang login.

6. Kontak

  • Di navigasi, klik Kontak. Jendela daftar kontak terbuka.
  • Gunakan kolom pencarian untuk menyaring nama kontak.
  • Klik salah satu kontak untuk membuka percakapan dengannya.
  • Nama partner chat di header obrolan juga bisa diklik, membuka halaman profilnya.

Menu Kontak juga memuat Groups, Friend Requests, dan Group Invites.

7. Menambahkan Kontak & Permintaan Pertemanan

  • Buka Kontak → Add Contact.
  • Ketik username yang ingin ditambahkan; hasil pencarian muncul langsung.
  • Klik nama orangnya untuk mengirim permintaan pertemanan.
  • Penerima melihat permintaan di Kontak → Friend Requests dan bisa menekan Accept (terima) atau Reject (tolak).
  • Begitu diterima, kalian saling muncul di daftar kontak dan bisa mulai chat.

Menambahkan kontak selalu butuh persetujuan orangnya — tidak ada yang bisa memaksa masuk ke daftar kontak Anda.

8. Enkripsi Pesan (Manual)

Inilah alur wajib sebelum mengirim pesan:

Langkah 1Tulis pesan pada kolom input.
Langkah 2Masukkan Secret Key (kunci rahasia) yang sudah Anda sepakati dengan lawan bicara. Kunci ini tidak pernah dikirim ke server.
Langkah 3Klik ENKRIPSI. Pesan berubah menjadi ciphertext acak (berawalan agcv1.) di kolom input.
Langkah 4Klik tombol ▶ untuk mengirim ciphertext tersebut.

Algoritma: AES-256-GCM dengan kunci turunan PBKDF2-HMAC-SHA256 (310.000 iterasi), salt 16 byte dan IV 12 byte acak per pesan. Semua diproses 100% di browser Anda. Mode GCM sekaligus mendeteksi pesan yang diubah di tengah jalan.

Kolom Secret Key tidak otomatis dikosongkan setelah mengirim, supaya Anda bisa mengirim beberapa pesan berturut-turut tanpa mengetik ulang. Kosongkan manual bila berpindah lawan bicara.

9. Dekripsi Pesan

  • Pesan masuk tampil sebagai ciphertext acak — ini normal dan memang disengaja.
  • Klik tombol DEKRIPSI pada balon pesan yang ingin dibaca.
  • Masukkan Secret Key yang sama dengan milik pengirim (modal kosong, harus diketik ulang).
  • Pesan asli muncul menggantikan ciphertext.

⚠️ Salah kunci = dekripsi gagal. Pastikan Anda dan lawan bicara memakai Secret Key yang persis sama (termasuk huruf besar/kecil). Sepakati kunci lewat kanal lain (tatap muka, telepon), jangan lewat chat ini sendiri.

10. Kirim Gambar / File

  • Klik ikon 📎 (paperclip) di samping kolom input.
  • Pilih file. Jenis yang didukung: gambar, video, audio, PDF, DOC/DOCX, XLS/XLSX, PPT/PPTX, TXT, CSV, dan ZIP.
  • Nama file dan ukurannya tampil sebagai pratinjau.
  • Isi Secret Key, lalu klik ▶ untuk mengirim. File dienkripsi di browser dulu sebelum dikirim.
  • Penerima mengklik DEKRIPSI untuk membukanya.

Batas ukuran file 20 MB. File kecil (≤ 3 MB) disimpan di database; file besar (> 3 MB) diunggah terenkripsi ke penyimpanan privat. Saat mengunggah file besar muncul bilah progres, dan bila gagal ada tombol Retry.

⚠️ File > 20 MB ditolak sistem. Saat ditolak, muncul popup yang menyebut nama dan ukuran file, lalu menyarankan Anda mengunggahnya ke penyimpanan awan dan mengirim tautannya. Ada empat tombol pintasan: Google Drive, MediaFire, OneDrive, dan Penyimpanan lain.

Tautan yang dikirim di dalam pesan bisa diklik langsung dan terbuka di tab baru. Hanya tautan http dan https yang aktif, jadi tautan aman dari penyalahgunaan.

Kuota penyimpanan per akun. Ada dua kuota terpisah, dihitung dari file yang kamu kirim (di chat pribadi maupun grup):

  • Database 50 MB untuk file kecil (≤ 3 MB).
  • Penyimpanan awan 100 MB untuk file besar (> 3 MB).

⚠️ Kalau kuota sudah penuh, upload ditolak dan muncul popup Penyimpanan penuh. Popup itu menampilkan dua bilah kuota, daftar file yang pernah kamu kirim (bisa dicentang), tombol Hapus terpilih, dan empat tombol pintasan penyimpanan awan supaya kamu bisa kirim link sebagai gantinya.

Hapus dari popup kuota tidak terikat batas 24 jam — kamu boleh membersihkan file berapa pun umurnya. Yang bisa dihapus tetap hanya file milikmu sendiri.

11. Balas Pesan (Reply)

Untuk menandai pesan mana yang sedang Anda balas, di chat pribadi maupun grup:

  1. Geser balon pesan ke kanan (tahan lalu tarik dengan jari, atau tahan-klik dan seret dengan mouse) sekitar 60 piksel sampai balon menyala.
  2. Lepaskan. Bar “Membalas” muncul di atas kolom input, menampilkan nama pengirim dan cuplikan pesannya.
  3. Tulis pesan Anda seperti biasa (enkripsi dulu bila perlu), lalu kirim.
  4. Pesan baru Anda kini membawa kutipan pesan aslinya. Klik kutipan itu untuk melompat ke pesan asli (pesannya berkedip sebentar).

Kutipan menampilkan nama pengirim + potongan isi. Kalau pesan aslinya masih terenkripsi, kutipan menampilkan penanda “Pesan terenkripsi”. Untuk membatalkan balasan, klik tombol ✕ di bar “Membalas”.

12. Tanda Pesan Dibaca

Setiap pesan yang Anda kirim punya penanda status:

  • 🕐 jam, pesan sedang dikirim (menunggu konfirmasi).
  • ✓ centang satu, pesan terkirim, belum dibaca penerima.
  • ✓✓ centang dua, pesan sudah dibaca penerima.
  • ⚠️ tanda seru, pesan gagal terkirim.

13. Hapus Pesan (Satuan & Massal)

Hapus satu pesan: arahkan ke balon pesan milik Anda sendiri, lalu klik ikon 🗑️. Pesan langsung hilang.

Hapus massal (bulk delete):

  • Klik tombol Pilih Pesan di header area chat. Kotak centang muncul di setiap pesan Anda yang masih bisa dihapus.
  • Centang pesan-pesan yang ingin dihapus.
  • Klik tombol Hapus. Dialog konfirmasi akan menyebut jumlah pesan yang terpilih.
  • Klik Batal untuk membatalkan dan keluar dari mode pilih.

⚠️ Aturan 24 jam: pesan hanya bisa dihapus dalam rentang kurang dari 24 jam sejak dikirim, dan hanya oleh pengirimnya. Menghapus file juga menghapus berkasnya dari penyimpanan.

Pengecualian: pembersihan lewat popup Penyimpanan penuh (lihat bagian 10) tidak terikat batas 24 jam, supaya Anda bisa mengosongkan ruang kapan saja. Yang bisa dihapus tetap hanya file milik Anda sendiri.

14. Sembunyikan Percakapan

Ingin beranda tetap rapi tanpa menghapus obrolan? Sembunyikan saja.

  • Di Beranda, klik ikon mata dicoret di kanan baris percakapan.
  • Konfirmasi, lalu percakapan itu hilang dari daftar beranda Anda.

Sifatnya per-akun: hanya beranda Anda yang terpengaruh, lawan bicara tetap menyimpan percakapannya. Kalau ada pesan baru, percakapan otomatis muncul lagi di beranda.

15. Profil & Pengaturan Akun

Buka lewat Profil di navigasi, atau klik nama partner chat.

  • Lihat profil: avatar besar, nama, dan @username.
  • Ganti avatar: klik avatar besar Anda → pilih emoji baru → simpan.
  • Edit profil (tombol ✏️ Edit Profile):
    • Ganti username saja → langsung tersimpan, tanpa OTP.
    • Ganti email dan/atau password → wajib konfirmasi OTP 6 digit yang dikirim ke email Anda. Langkah keamanan ekstra agar orang lain tidak bisa mengubah kredensial akun Anda.

Tombol ← Back mengembalikan Anda ke area chat.

16. Blokir Pengguna

  • Buka profil pengguna lain (klik namanya di header chat, atau lewat Kontak).
  • Klik tombol 🚫 Blokir Pengguna di halaman profilnya.
  • Setelah diblokir: Anda berdua tidak saling tampak di daftar kontak dan tidak bisa saling berkirim pesan.
  • Blokir bisa dibuka kembali (🔓 Buka Blokir) dari tempat yang sama.

Status yang mungkin muncul di daftar: 🚫 Kamu blokir (Anda memblokir dia) dan 🚫 Blokir kamu (dia memblokir Anda).

17. Catatan Keamanan Penting

  • Zero-knowledge server: server hanya menyimpan ciphertext. Isi pesan, Secret Key, dan hasil dekripsi tidak pernah menyentuh server.
  • Secret Key = tanggung jawab Anda. Kunci hilang → pesan tak bisa dibaca siapa pun. Bagikan kunci hanya ke orang terpercaya, lewat kanal di luar aplikasi ini.
  • Autentikasi pesan: mode AES-GCM membuat pesan yang diubah di tengah jalan terdeteksi (dekripsi gagal), bukan diterima diam-diam.
  • Password akun disimpan sebagai hash bcrypt di server; tetap jangan pakai password yang sama dengan layanan lain.
  • OTP via email melindungi perubahan email/password dan proses reset. Jangan bagikan kode OTP ke siapa pun.
  • Kekuatan enkripsi bergantung pada Secret Key Anda — pakai kunci panjang dan sulit ditebak.

18. Grup Chat

Membuat grup:

  • Buka Kontak → New Group.
  • Isi nama grup, centang kontak yang mau dimasukkan, lalu klik Create. Anggota terpilih langsung masuk grup.

Chat grup: grup tampil di daftar Groups pada menu Kontak. Klik grup untuk membukanya. Enkripsinya sama persis dengan chat pribadi: tulis pesan → isi Secret Key → ENKRIPSI → ▶. Grup terakhir yang Anda buka diingat, jadi refresh halaman tetap kembali ke grup yang sama.

Group Info: klik nama grup di header obrolan. Di sana ada nama grup, jumlah anggota, dan daftar anggota — pembuat grup bertanda (admin). Klik salah satu anggota untuk langsung membuka chat pribadi dengannya (bila ia belum jadi kontak Anda, muncul peringatan).

Hak admin:

  • Tambah Anggota — pilih kontak untuk diundang. Yang diundang tidak langsung masuk: undangan muncul di Kontak miliknya, bagian Group Invites, dan ia harus menekan Join (setuju) atau Decline (tolak).
  • Keluarkan anggota — tombol hapus di samping anggota non-admin pada daftar anggota.
  • Bubarkan Grup — membubarkan grup dan menghapus seluruh keanggotaannya. Hanya admin.

⚠️ Keluar Grup meminta konfirmasi dan tidak bisa dibatalkan — untuk bergabung lagi, admin harus mengundang Anda ulang. Kalau yang keluar adalah admin, ia harus memilih pengganti admin dari anggota yang tersisa.

19. Bahasa & Tampilan

  • Di navigasi atas ada tombol bendera 🇮🇩 / 🇬🇧. Klik untuk berganti bahasa antarmuka (Indonesia ↔ Inggris); seluruh teks langsung berubah tanpa reload.
  • Halaman Panduan ini punya tombol INDONESIA / ENGLISH sendiri di kanan atas.
  • Tombol ↑ di kanan bawah mengembalikan Anda ke atas halaman.
  • Di perangkat mobile, header chat dan kolom input tetap menempel (tidak ikut tergulung) sehingga Anda selalu bisa mengetik.

20. Privasi Layar (Blur Otomatis)

Supaya isi percakapan tidak ikut terlihat saat Anda berpindah aplikasi atau bersiap mengambil tangkapan layar, AegisChat menutup layar chat dengan lapisan buram secara otomatis.

Kapan layar otomatis diburamkan:

  • Anda berpindah ke aplikasi atau jendela lain (jendela chat kehilangan fokus).
  • Anda pindah tab atau meninggalkan browser (di HP: membuka aplikasi lain).
  • Anda menekan tombol PrintScreen.

Kapan muncul lagi: begitu jendela/tab kembali aktif, isi chat tampil sendiri tanpa perlu klik. Kalau tertutup karena PrintScreen, cukup klik di mana saja atau tekan Enter.

Lapisan buram menampilkan ikon mata, tulisan Konten disembunyikan, dan petunjuk Klik untuk menampilkan lagi — semuanya mengikuti bahasa yang sedang aktif.

⚠️ Jujur soal batasnya: tidak ada halaman web yang bisa memblokir screenshot secara mutlak. Browser sengaja tidak menyediakan kemampuan itu, dan foto layar memakai kamera HP tidak bisa dicegah perangkat lunak apa pun. Blur otomatis ini menutup kasus yang paling umum (berpindah ke alat screenshot di laptop), bukan proteksi penuh. Untuk chat yang benar-benar rahasia, tetap jaga perangkat Anda dan jangan tinggalkan layar terbuka.

← Kembali ke Login