This question already has an answer here:
This is just an idea I had while looking through some threads so take it as you will.
Given a plaintext of any length and a key that a specific hash function is capable of taking as input(I mention this as I know bcrypt has issues with extremely large inputs), what would be the potential issues/attacks of hashing the key and then xoring the resulting key with a plaintext block of the same length? For the next block you would hash the previous hash created via the key and xor that with the next plaintext block. Repeat till you reach the end of the plaintext, pad it to the needed length, and commit the last xoring
I would imagine that it would make for a high speed stream cipher that is reasonably capable as long as the initial key is sufficiently strong.