我正在尝试使用空键初始化 Mac 实例。但它因“InvalidKeyException”而失败。以下是使用 Oracle Java 的代码片段,但在 IBM J9 中出现异常。. 有人可以帮我解决问题吗?
导入 java.security.InvalidKeyException;导入 java.security.NoSuchAlgorithmException;
导入 javax.crypto.Mac;导入 javax.crypto.spec.SecretKeySpec;
公共类TestHM {
public static void main(String[] args) throws NoSuchAlgorithmException, InvalidKeyException {
String alg = "HmacSHA256";
Mac m = Mac.getInstance(alg);
SecretKeySpec secretKey = new SecretKeySpec(new byte[] {0}, 1, 0, alg);
m.init(secretKey);
System.out.println("End");
}
当前输出:线程“main”中的异常 java.security.InvalidKeyException:在 javax.crypto.Mac.a(Unknown Source) 处的 com.ibm.crypto.provider.HmacSHA256.engineInit(Unknown Source) 处缺少密钥数据。在 TestHM.main(TestHM.java:18) 的 crypto.Mac.init(Unknown Source)
Java 版本:java -version java 版本“1.8.0”Java(TM) SE 运行时环境(构建 pap6480sr3fp10-20160720_02(SR3fp10))IBM J9 VM(构建 2.8,JRE 1.8.0 AIX ppc64-64 压缩参考 20160719_312156(启用 JIT) , AOT enabled) J9VM - R28_Java8_SR3_20160719_1144_B312156 JIT - tr.r14.java_20160629_120284.01 GC - R28_Java8_SR3_20160719_1144_B312156_CMPRSS J9CL - 20160719_312156) JCL - 20160719_01 based on Oracle jdk8u101-b13