This article is for deciding server stacks, for Who's Hungry?, and to help other startup backend developers if possible.

Cipher Block Chaining Mode

CBC

To encrypt using this mode, a uniform initialization vector (IV) of length $n$ is first chosen. Then, cipher text blocks are generated by applying the block cipher to XOR of the current plaintext block and the previous ciphertext block. That is, set $c_0$ := IV and then for i = 1 to $l$, set $c_i$ := $F_k$ ($c_{i-1} \xor m_i$). The final