If you need to print out the result of call function crypto:hash(sha512,"password"). for readability - you can try convert result eg:
1> Secret = crypto:hash(sha512, "password").
<<177,9,243,187,188,36,78,184,36,65,145,126,208,109,97,
139,144,8,221,9,179,190,253,27,94,7,57,76,112,...>>
2> <<SHA512:512/big-unsigned-integer>> = Secret.
<<177,9,243,187,188,36,78,184,36,65,145,126,208,109,97,
139,144,8,221,9,179,190,253,27,94,7,57,76,112,...>>
3> io_lib:format("~128.16.0b", [SHA512]).
"b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e07394c706a8bb980b1d7785e5976ec049b46df5f1326af5a2ea6d103fd07c95385ffab0cacbc86"
About salt - looks like you need implement this logic in your end. Eg:
salt will be added into start or into end of string what will be encrypted and client will send this into server and in server side you will try to check it, but for this case you need to know the salt in advance.