Utilia

Enkripsi Teks

Enkripsi dan dekripsi teks dengan frasa sandi di browser, memakai AES-256-GCM dan PBKDF2 600.000 iterasi. Tidak ada yang diunggah. Batasannya dijelaskan jujur.

Gunakan frasa sandi yang panjang, seperti lima kata acak atau lebih. Tidak ada yang dapat memulihkan frasa sandi yang terlupa, dan teks terenkripsi hanya sekuat frasa sandinya.

Cara mengenkripsi dan mendekripsi teks

  1. Ketik atau tempel pesan Anda di kotak pertama, atau klik Buka file .txt.
  2. Masukkan Frasa sandi, dan frasa yang sama sekali lagi di Konfirmasi frasa sandi (untuk enkripsi). Centang Tampilkan frasa sandi untuk memeriksa apa yang Anda ketik. Baris kekuatan memberi gambaran kasar seberapa sulit frasa sandi ditebak.
  3. Klik Enkripsi. Menurunkan kunci memakan waktu sekitar satu detik, dan itu disengaja (lihat di bawah). Hasil berupa blok teks yang diawali BEGIN ENCRYPTED TEXT. Salin ke email, obrolan, atau catatan, atau Unduh .txt untuk menyimpannya sebagai file.
  4. Untuk membacanya kembali, tempel seluruh blok (atau buka file .txt) di kotak pertama, masukkan frasa sandi, dan klik Dekripsi. Kotak konfirmasi tidak diperlukan untuk dekripsi.

Jika frasa sandi salah, atau jika satu karakter saja dari blok diubah, Anda mendapat pesan kesalahan yang jelas, bukan teks yang berantakan.

Apa yang terjadi pada teks Anda

Semuanya berjalan di browser Anda dengan Web Crypto API bawaan. Teks dan frasa sandi tidak pernah dikirim ke mana pun. Alat ini memakai komponen standar yang telah banyak diulas:

  • Penurunan kunci: PBKDF2 dengan HMAC-SHA-256 dan 600.000 iterasi, pengaturan yang direkomendasikan oleh OWASP Password Storage Cheat Sheet untuk PBKDF2-HMAC-SHA256. Salt acak baru sepanjang 16 byte dibuat untuk setiap enkripsi, sehingga frasa sandi yang sama menghasilkan kunci berbeda setiap kali dan tabel yang dihitung lebih dulu tidak berguna. Putaran sebanyak 600.000 membuat setiap tebakan frasa sandi lambat bagi penyerang, dan itulah alasan enkripsi memerlukan waktu sejenak.
  • Enkripsi: AES-256 dalam mode GCM (NIST SP 800-38D) dengan IV acak baru sepanjang 12 byte. GCM adalah enkripsi terautentikasi: tag 16 byte mendeteksi setiap modifikasi. Header kecilnya (versi format, jumlah iterasi, salt, dan IV) juga diautentikasi.
  • Keluaran: Base64 dengan header. Blok mencantumkan versi format, sehingga versi alat ini di masa depan tetap dapat membaca pesan hari ini. Mengenkripsi teks yang sama dua kali menghasilkan dua blok yang berbeda, dan itu memang diharapkan.

Batasan yang perlu diketahui

Alat ini ditujukan untuk privasi sehari-hari: mengirim kata sandi Wi-Fi kepada teman, menjaga catatan pribadi tidak terbaca oleh mata yang sekadar lewat, atau membagikan rahasia singkat lewat saluran yang tidak sepenuhnya Anda percayai, dengan frasa sandi disampaikan lewat cara lain (langsung atau lewat telepon).

  • Frasa sandi adalah segalanya. AES-256 sendiri bukan titik lemah; frasa sandi yang mudah ditebaklah titik lemahnya. Frasa sandi yang pendek atau umum dapat dibobol secara offline, meskipun ada 600.000 iterasi, oleh siapa pun yang memiliki blok terenkripsi. Gunakan lima kata acak atau lebih, atau kata sandi acak yang panjang dari sebuah generator. Perkiraan kekuatan hanyalah petunjuk: alat ini tidak tahu bahwa “Rahasia2024!” adalah pola yang umum.
  • Tidak ada pemulihan. Tidak ada pintu belakang, tidak ada pengaturan ulang, dan tidak ada salinan frasa sandi Anda. Jika Anda lupa, teksnya hilang selamanya.
  • Perangkat Anda harus tepercaya. Malware, ekstensi browser, atau orang yang mengintip dari belakang dapat membaca teks sebelum dienkripsi.
  • Metadata tidak disembunyikan. Panjang blok menunjukkan kira-kira panjang pesan.
  • Bukan pengganti alat yang sudah mapan. Untuk file, cadangan, arsip jangka panjang, atau apa pun yang sensitif (hukum, medis, rahasia bisnis), gunakan alat teraudit yang dibuat untuk itu: age, GnuPG (OpenPGP), atau enkripsi ujung ke ujung milik aplikasi pesan seperti Signal.

Pertanyaan yang sering diajukan

Apakah enkripsi ini aman?

Algoritmanya adalah yang dipakai bank dan pemerintah, diterapkan dengan cara yang direkomendasikan (salt dan IV acak, enkripsi terautentikasi). Dalam praktik, keamanannya adalah keamanan frasa sandi Anda dan perangkat yang Anda pakai.

Mengapa frasa sandi saya “salah” padahal saya yakin benar?

Frasa sandi peka huruf besar-kecil dan spasi dihitung. Periksa Caps Lock dan tata letak keyboard (AZERTY atau QWERTY), dan pastikan seluruh blok tersalin, dari BEGIN sampai END. Blok yang terpotong atau diubah menghasilkan kesalahan yang sama dengan frasa sandi yang salah, sesuai rancangan.

Bisakah teks saya didekripsi jika saya kehilangan frasa sandi?

Tidak. Tidak seorang pun bisa: frasa sandi tidak disimpan di mana pun, dan mencoba setiap kemungkinan persis hal yang rancangan ini buat tidak praktis.

Bisakah saya mendekripsi blok dengan program lain?

Formatnya terdokumentasi di halaman dan memakai primitif standar: 1 byte versi, jumlah iterasi 4 byte, salt 16 byte, IV 12 byte, lalu ciphertext AES-GCM beserta tag 16 byte-nya, semuanya dalam Base64; header 33 byte diteruskan sebagai data tambahan terautentikasi. Pengembang dapat mendekripsinya dengan beberapa baris kode memakai OpenSSL, paket cryptography milik Python, atau Web Crypto.

Apakah lebih baik daripada sandi Caesar atau ROT13?

Sama sekali berbeda: keduanya hanya menyamarkan huruf dan dapat dibobol dalam hitungan detik. AES-GCM dengan frasa sandi yang kuat adalah kriptografi modern yang tidak dapat dibobol dengan mencoba pergeseran atau melihat frekuensi huruf.