Enkripsi RC4 (Lawas)
Enkripsi teks dengan stream cipher RC4 (ARC4) memakai frasa sandi kompatibel OpenSSL atau kunci hex mentah. Hanya untuk kompatibilitas lawas dan test vector.
Output memakai format OpenSSL "Salted__" dalam Base64: salt acak 8 byte diikuti ciphertext. Kunci dan IV diturunkan dari frasa sandi dan salt, jadi teks yang sama menghasilkan output berbeda setiap kali. Perintah setara:
Frasa sandi diubah menjadi kunci RC4 128 bit seperti di OpenSSL. CryptoJS.RC4 dengan frasa sandi memakai kunci 256 bit, sehingga output-nya tidak bisa didekripsi di sini.
openssl enc -rc4 -md md5 -a -A -provider legacy -provider default -k '…'Berjalan sepenuhnya di browser Anda. Data Anda tidak pernah diunggah.
Apa itu Enkripsi RC4?
Mengenkripsi data dengan RC4 (disebut juga ARC4 atau ARCFOUR), stream cipher yang dulu dipakai di WEP, TLS versi awal, dan banyak format file. Panjang output sama dengan input karena RC4 meng-XOR data dengan keystream.
Cara menggunakan Enkripsi RC4
- Pilih Frasa sandi (kompatibel OpenSSL) lalu ketik frasa sandi, atau Kunci mentah + IV (hex) dan masukkan kunci 1–256 byte dalam hex (RC4 tidak memakai IV).
- Ketik atau tempel Plaintext.
- Klik Enkripsi lalu pilih Base64 atau Hex sebagai Encoding output.
- Salin ciphertext-nya.
Contoh
Raw key 4b6579 ("Key"), plaintext "Plaintext", Hex output bbf316e8d940af0ad3
Test vector RC4 klasik.
Kapan menggunakan Enkripsi RC4
Gunakan untuk berinteroperasi dengan perangkat lunak lama atau memeriksa test vector RC4 (RFC 6229). Jangan pernah memakai RC4 untuk enkripsi baru; byte-byte awal keystream membocorkan informasi tentang kunci dan tidak ada pemeriksaan integritas.
Cara kerja Enkripsi RC4
RC4 membangun permutasi 256 byte dari kunci (key-scheduling algorithm) lalu menghasilkan satu byte keystream untuk setiap byte input, yang di-XOR dengan plaintext. Mode mentah memakai byte kunci Anda secara langsung (1–256 byte). Mode frasa sandi menurunkan kunci 16 byte dari frasa sandi dan salt acak seperti openssl enc -rc4 (EVP_BytesToKey MD5 atau PBKDF2-SHA256) dan menghasilkan format Salted__. Enkripsi dan dekripsi adalah operasi yang sama.
Kasus Penggunaan Umum
- Memverifikasi test vector RC4 seperti Key/Plaintext → BBF316E8D940AF0AD3
- Membuat data untuk aplikasi lawas yang memakai ARC4
- Mempelajari mengapa WEP dan RC4 di TLS berhasil dibobol
- Membuat ulang output
openssl enc -rc4
Catatan Keamanan
RC4 sudah jebol: keystream-nya memiliki bias statistik yang kuat dan RFC 7465 melarangnya di TLS. RC4 tidak memberikan perlindungan integritas. Gunakan hanya untuk data lawas.
Pertanyaan Umum
Mengapa saya tidak bisa mendekripsi output CryptoJS.RC4 yang dibuat dengan frasa sandi?
CryptoJS menurunkan kunci RC4 256 bit dari frasa sandi, sedangkan OpenSSL menurunkan kunci 128 bit. Alat ini mengikuti OpenSSL. Dengan kunci mentah, keduanya menghasilkan output yang identik.
Apakah RC4 memakai IV?
Tidak. Karena itulah memakai ulang kunci yang sama untuk dua pesan berakibat fatal: meng-XOR kedua ciphertext akan menghilangkan keystream. Mode frasa sandi menghindari hal ini dengan memakai salt acak setiap kali.
Perintah OpenSSL mana yang sesuai?
openssl enc -rc4 -md md5 -a -A -provider legacy -provider default -k <passphrase> (OpenSSL 3 membutuhkan legacy provider).