Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中有一种简单的散列方法吗?_Java_Hash - Fatal编程技术网

在Java中有一种简单的散列方法吗?

在Java中有一种简单的散列方法吗?,java,hash,Java,Hash,我有一些字符串要用SHA-256方法散列。我在网上查了一下,令我大吃一惊的是,我找不到一个简单的方法。 我知道MessageDigest类似乎提供了我所需要的一切,除了一件事:像这样的方法:stringhash256(stringtxt) 我也知道有很多方法可以做到这一点(例如:),但我不愿意为可能已经存在的东西写多行。你们知道这样的事情是否存在吗 编辑:看起来我不够清楚。JDK中是否存在与以下代码等效的现有方法 public String hash256(String txt){ Me

我有一些字符串要用SHA-256方法散列。我在网上查了一下,令我大吃一惊的是,我找不到一个简单的方法。 我知道
MessageDigest
类似乎提供了我所需要的一切,除了一件事:像这样的方法:
stringhash256(stringtxt)
我也知道有很多方法可以做到这一点(例如:),但我不愿意为可能已经存在的东西写多行。你们知道这样的事情是否存在吗

编辑:看起来我不够清楚。JDK中是否存在与以下代码等效的现有方法

public String hash256(String txt){
    MessageDigest sha = MessageDigest.getInstance("SHA-256");
    sha.update(txt.getBytes());
    byte[] digest = sha.digest();
    return bytesToString(digest);
}
然后将字节转换为字符串。确保指定了字符串编码


然后将字节转换为字符串。确保指定了字符串编码

您可以从Apache Commons库中使用。

您可以从Apache Commons库中使用。

顺便说一句,dup并不难找到:google“java SHA256”,它是最热门的。不知道你所说的“我搜索过网络”是什么意思:/@Bohemian正如我所说的,我想知道是否有一个jdk方法可以将一个字符串散列成一个字符串。你提供的例子给了我字节(我知道如何处理它们,但我不想重新编码已经存在的东西)。顺便说一句,dup并不难找到:谷歌“JavaSHA256”,它是最热门的。不知道你所说的“我搜索过网络”是什么意思:/@Bohemian正如我所说的,我想知道是否有一个jdk方法可以将一个字符串散列成一个字符串。您提供的示例为我提供了字节(我知道如何处理它们,但我不想重新编码已经存在的东西)。我的问题是:是否有一个现有的方法可以完成所有这些(而不仅仅是对字节进行散列)?我回答的重点是向您展示,使用现有的API做您想要的事情是多么简单。并不是每个问题都有一个单一的解决方案。我的问题是:是否有一个现有的方法可以完成所有这些(而不仅仅是散列到字节)?我回答的要点是向您展示,使用现有的API做您想要做的事情是多么简单。不是每个问题都有一个单一的解决方案。没有JDK等价物吗?您可以在Dodd10x的答案中看到JDK等价物。你也可以编写一个FXMUtils类来编写你想要的方法。这并不是我想要的,但我想这是我能得到的最好的了,谢谢。没有JDK等价物吗?你可以在Dodd10x的答案中看到JDK等价物。你也可以用一个FXMUtils类来编写你想要的方法。这不是我想要的,但我想这是我能得到的最好的了,谢谢。
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(stringAsbytes);
stringAsBytes = md.digest();