New Salt generation and dependency

* Salts are now optional
* When a Salt is not specified, a random one will be generated