我已经在诺基亚开发者论坛上发布了这个问题,所以请多多包涵。
我正在编写一个应用程序,它需要找到一个以唯一值作为键的 URL 的 SHA-256 哈希 - 即hmac('sha256', '27/3', '9EWVFmHpHN6n2YKW9QtvUqX3xbsFQUBovlrFddqnF7fpcSDA2q')
. 在 Java ME/J2ME 中执行此操作的最佳方法是什么?
我找到了许多使用Mac
该类的示例,但 Java ME/J2ME 不支持此功能。
提前致谢。
我设法让事情正常进行,解决方案如下:
Digest digest = new SHA256Digest();
HMac hmac = new HMac(digest);
hmac.init(new KeyParameter(appKeyHere));
hmac.update(requestURI, 0, lenOfReqURI);
byte[] resBuf = new byte[digest.getDigestSize()];
hmac.doFinal(resBuf, 0);
String resStr = new String(Hex.encode(resBuf)); // Contains final usable value
BouncyCastle 最新的 J2ME 兼容版本(轻量级 API)包含一个 SHA256 实现——org.bouncycastle.crypto.digests.SHA256Digest
它应该适合你。