Password hashing with salt and system salt, with tests