有人在Android手机上实施或使用过Hmac-Whirlpool吗? 我在互联网上找到whirlpool.java,但Android SDK中的默认安全提供程序似乎没有Whirlpool或Hmac-Whirlpool。
答案 0 :(得分:0)
Android已下载Bouncy Castle版本,似乎不允许访问org.bouncycastle.crypto.macs.HMac类,而应使用javax.crypto.Mac.getInstance(字符串算法)({{3} })。似乎只允许一些MAC算法(我看到“HMAC-SHA512”正在工作)。但是如果你决定使用SpongyCastle库,你可以这样做(here):
CipherParameters p = new KeyParameter(key.getBytes("UTF-8"));
WhirlpoolDigest w = new WhirlpoolDigest();
HMac hm = new HMac(w);
hm.init(p);
hm.update(inbytes, 0, inbytes.length);
byte[] result = new byte[hm.getMacSize()];
hm.doFinal(result, 0);
包括SpongyCastle可能会有很多问题,因为它在Android 2.2中增加了1.84MB的应用程序大小。然后只能将相关文件导入项目中:
//接口
org.bouncycastle.crypto.CipherParameters
org.bouncycastle.crypto.Digest
org.bouncycastle.crypto.ExtendedDigest
org.bouncycastle.crypto.Mac
//班级
org.bouncycastle.crypto.params.KeyParameter
org.bouncycastle.crypto.digests.WhirlpoolDigest
org.bouncycastle.crypto.macs.HMac
org.bouncycastle.crypto.DataLengthException
org.bouncycastle.crypto.RuntimeCryptoException