Added the ability to make Salts optional and use 'SecureRandom' to generate secure salts in absence of Salt.