What is a salt? What are it's properties? Is the salt public? What happens if an attacker has it?