better validation.  Salt up to 64 bytes.  use strnzcpy where needed