如何使用SHA-256散列字符串

Com*_*erd 2 java string hash sha256

我试图使用SHA-256哈希我的用户密码字符串类型

我使用SHA-256使用以下方法散列字符串

String text = "abc";
MessageDigest digest = MessageDigest.getInstance("SHA-256");
byte[] hash = digest.digest(text.getBytes("UTF-8"));
Run Code Online (Sandbox Code Playgroud)

要将btye数组转换为字符串,我使用以下方法

String doc2 = new String(hash, "UTF-8");
Run Code Online (Sandbox Code Playgroud)

当我打印doc2输出时,我得到了垃圾

?x????AA@?]?"#?a??z???a?
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么 ???如何使用SHA-256散列字符串并将其转换回字符串?

Evg*_*eev 8

这将pring十六进制表示哈希

String s = DatatypeConverter.printHexBinary(hash)
Run Code Online (Sandbox Code Playgroud)

你不能从哈希获得原始字符串