就像标题一样,我想找到一个哈希函数来生成给定长度的哈希。从互联网上我发现一个解决方案是我可以使用SHAKE256技术。但我找不到一些使用SHAKE256的java代码。任何人都可以提供一些示例java代码,以便我可以在我的代码中使用它?
答案 0 :(得分:0)
我在Google中输入java shake256
,发现此解决方案为第二个结果:https://github.com/aelstad/keccakj。它是一个名为“keccakj”的Java库,能够计算shake256哈希等。
答案 1 :(得分:0)
对于晃动256,要生成任意位长d
和d
<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);
}