add default salt and add option to ignore write empty string
update version