Please, please, please, do not implement any crypto after reading this. The simplistic explanation of symmetric encryption (talking about using &quot;salts&quot; to get distinct ciphertext each time to &quot;make attacker&#x27;s life more difficult&quot;) is superficial and you should not feel comfortable implementing crypto after studying this tutorial. Go study something properly written by a real cryptographer.<p>For the record, the AES algorithm itself does not encrypt arbitrarily sized data: it works on 128-bit blocks only. To make it work on arbitrary data, there&#x27;s a ton of techniques that work together to make it happen that need far more care than just &quot;adding salt&quot;. Also, read about authenticated encryption and why it is necessary.<p>I&#x27;ve heard Dan Boneh&#x27;s Coursera course is a good intro to basic crypto.<p>Once again, please stay away of this guide.&lt;&#x2F;scare&gt;