After I hash a string with "SHA512″ and encoding-mode "base64″, how to convert it again back to the original string?
You cannot. Hash algorithms are one-way algorithms that create "fingerprint" of the data. Regardless of the amount of data that is hashed, the output (i.e. the fingerprint) is always a constant size. For example, SHA-1 output is always 20 bytes. SHA-512 output is always 64 bytes. Digest-MD5 has a 16-byte output.