After looking at all major encryption algorithms, I've realized they all are somewhat complex given that the only thing they have to do is take a key and use it to "mix" all the information, beside authentication and efficiency.
I've thought of a simple system that would use pure hashing and XORing to encrypt the data (just an example for the question of the title):
1. Generate an initial hash with the password.
2. Divide the data to encrypt into N blocks.
3. Hash the initial hash recursively until you have N hashes of size(block).
4. Now, we take each hash block and each data block and XOR them together.
5. When done, put it all together, and that's the ciphered output.
To decrypt, it's more of the same.
I've not seen found any algorithms that do this or that explain why this is not secure. Using something like shake256 to generate hash blocks of 4KB, the efficiency is similar to other algos like AES.
I don't see a potential weakness because of the XOR's, since each block has its own (limited) entropy, based on the password, which must have high entropy to begin with, otherwise it's *as* insecure as other algos.