经过艰苦的测试,我找到了解决方案。
在JavaScript中产生的SHA-256哈希值可以直接在bouncyclaste后某种类型的转换如下使用:
byte[] decodedHex = Hex.decodeHex(digest.toCharArray());
因此可以用它作为一个正常的
java.security.MessageDigest
当它们是均转换为
byte[]
完整代码在这里:
// Get hash code as hexadecimal string (generated by crypto-js)
String digest = servletRequest.getParameter("digest");
// hexadecimal to string decoder
byte[] decodedHex = Hex.decodeHex(digest.toCharArray());
// Timestamp request
TimeStampRequestGenerator reqgen = new TimeStampRequestGenerator();
TimeStampRequest req = reqgen.generate(TSPAlgorithms.SHA256, decodedHex);
byte request[] = req.getEncoded();
...