經過艱苦的測試,我找到了解決方案。
在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();
...