我想找到一个哈希函数来生成给定长度的哈希

时间:2017-02-12 13:11:56

标签: function hash

就像标题一样,我想找到一个哈希函数来生成给定长度的哈希。从互联网上我发现一个解决方案是我可以使用SHAKE256技术。但我找不到一些使用SHAKE256的java代码。任何人都可以提供一些示例java代码,以便我可以在我的代码中使用它?

2 个答案:

答案 0 :(得分:0)

我在Google中输入java shake256,发现此解决方案为第二个结果:https://github.com/aelstad/keccakj。它是一个名为“keccakj”的Java库,能够计算shake256哈希等。

答案 1 :(得分:0)

对于晃动256,要生成任意位长dd <256的哈希,只需从bouncycastle中修剪SHAKEDigest的结果即可。

    public static byte[] hash(byte[] src, int byteLength){
        //import org.bouncycastle.crypto.digests.SHAKEDigest;
        Assert.assertTrue("do not support result length more than 32", byteLength<=32);
        SHAKEDigest d = new SHAKEDigest(256);
        byte[]checksumByte = new byte[32];
        d.update(src,0,src.length);
        d.doFinal(checksumByte,0);
        return Arrays.copyOf(checksumByte,byteLength);
    }
相关问题