gpt4 book ai didi

java - 有没有什么方法可以将 SHA256 哈希字符串转换为 Java 字符串?

转载 作者:行者123 更新时间:2023-12-02 10:52:17 24 4
gpt4 key购买 nike

我有以下代码,我想要来自 SHA256 哈希字符串的 Java 字符串。有没有办法将十六进制字符串转换为其原始值?

public class CryptoHash {
public static void main( String[] args ) throws NoSuchAlgorithmException {
MessageDigest md = MessageDigest.getInstance( "SHA-256" );
String text = "Text to hash, cryptographically.";

// Change this to UTF-16 if needed
md.update( text.getBytes( StandardCharsets.UTF_8 ) );
byte[] digest = md.digest();

String hex = String.format( "%064x", new BigInteger( 1, digest ) );
System.out.println( hex );
}
}

最佳答案

简单回答:不,没有办法。

更长的答案:可能有一种使用蛮力策略的方法。但这需要很长的时间,太长了,效率很低。

看,哈希通常是为了使其无法逆转。您将字符串转换为某种哈希值,并且这是无法逆转的。您可以看看哈希和加密是如何工作的。

https://www.cryptocompare.com/coins/guides/how-does-a-hashing-algorithm-work/

如果这么简单,只使用一行代码,那么哈希的整个想法和过程就会有问题。

编辑:如果您想将字符串转换为哈希值,然后转换为十六进制,最后转换为 ASCII,您的结果将是原始哈希值。因此,这个想法不会实现。您无法通过这种方式解密。

关于java - 有没有什么方法可以将 SHA256 哈希字符串转换为 Java 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52072150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com