首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中计算SHA3散列

在Java中计算SHA3散列
EN

Stack Overflow用户
提问于 2015-05-08 03:25:15
回答 3查看 32.9K关注 0票数 28

我一直在使用CryptoJS (即CryptoJS.algo.SHA3.creat())库在前端进行SHA-3哈希。(参见http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/sha3.js)

我想知道是否有Java库的等价物?但到目前为止,我还没有找到。Java SHA-3的例子也不多。

sun.security.Provider有SHA-3,但它在Eclipse下不可见。此外,我也不确定这款sun的SHA-3是否与CryptoJS的SHA-3相同。

有没有人能举一些例子?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-05-08 03:48:12

用于加密和加密支持的常见Java参考实现可能是BouncyCastle。它可以是一个很大的库,这就是为什么我们经常接触到sun.security (无论对错)。

无论如何,BouncyCastle似乎提供了org.bouncycastle.jcajce.provider.digest.SHA3.DigestSHA3

票数 30
EN

Stack Overflow用户

发布于 2017-03-30 17:11:59

感谢@jdv的回答。我正在添加更多信息,以便快速入门并举例说明。

首先,添加BouncyCastle maven依赖项,或者在Maven Central上获取它:

代码语言:javascript
复制
    <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcpkix-jdk15on</artifactId>
        <version>1.56</version>
    </dependency>

然后我们就可以测试它了:

代码语言:javascript
复制
import org.bouncycastle.jcajce.provider.digest.SHA3;
import org.bouncycastle.util.encoders.Hex;
import org.junit.Test;

@Test
public void testSha3() throws Exception {
    String input = "Hello world !";
    SHA3.DigestSHA3 digestSHA3 = new SHA3.Digest512();
    byte[] digest = digestSHA3.digest(input.getBytes());

    System.out.println("SHA3-512 = " + Hex.toHexString(digest));
}

您将得到以下结果(512位或64字节的十六进制):

e9a4fd120d684537d57f314d51213ce5acef8ff6974e2b7599674ef0f0a3cf111f0d26ed602db946739da448210fb76a7621d7a8f07728372b10a975f36d8e37 =

SHA3-512

您可以将其与以下结果进行比较:https://duckduckgo.com/?q=sha3+%22Hello+world+!%22&ia=answer

票数 24
EN

Stack Overflow用户

发布于 2015-08-17 16:09:55

您可以查看Java中的实现

sha3 example

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30109958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档