您的代码的这一部分是错误的:
KeySpec keySpec = new PBEKeySpec(password.toCharArray(), saltBytes, 100, 128/32);//->---------------------------------------------------------------------^^^^^^^
该
128/32值是错误的。您需要用
128,
192或
256。当前,您具有的等价物
4,这似乎导致PBKDF2函数完全没有输出。
另外,在Java中,您应该使用
DatatypeConverter.parseHexBinary()或类似的将十六进制转换为字节。目前,您正在拨打
getBytes()不正确的电话。
最后,您需要指定CBC模式和PKCS#5填充以匹配您的Javascript代码。因此,将行更改为:
Cipher c = Cipher.getInstance("AES/CBC/PKCS5Padding");


