Dalam kriptografi, stream cipher adalah sebuah cipher kunci simetris dimana bit plainteks digabungkan dengan aliran bit cipher pseudorandom (keystream) menggunakan operasi exclusive-or (xor). Dalam stream cipher, digit plainteks dienkripsi satu per satu, dan transformasi digit yang berurutan bervariasi selama keadaan enkripsi. Nama alternatifnya adalah state cipher, karena enkripsi setiap digit tergantung pada state saat ini. Dalam prakteknya, digit biasanya berupa bit tunggal atau byte.

Stream cipher mewakili pendekatan yang berbeda untuk enkripsi simetris dari block cipher. Block cipher beroperasi pada blok besar dengan panjang tetap. Stream cipher biasanya dijalankan pada kecepatan yang lebih tinggi daripada block cipher dan memiliki persyaratan perangkat keras yang lebih rendah. Akan tetapi, stream cipher dapat rentan terhadap masalah keamanan yang serius jika digunakan secara tidak benar; sebagai contoh, khususnya, keadaan awal yang sama tidak boleh digunakan dua kali.

Stream cipher menggunakan kunci kriptografi yang jauh lebih kecil dan lebih nyaman, misalnya kunci 128 bit. Berdasarkan kunci ini, ia menghasilkan keystream pseudorandom yang dapat digabungkan dengan digit plaintext dengan cara yang mirip dengan algoritma enkripsi one-time pad. Namun, karena keystream adalah pseudorandom, dan tidak benar-benar acak, keamanan yang terkait dengan pad satu kali tidak dapat diterapkan dan sangat mungkin untuk stream cipher menjadi benar-benar tidak aman.