Java SecretKeyFactory不可用

时间:2017-03-28 22:59:13

标签: java security private-key java-security

我正在尝试使用SecretKeyFactory生成一个带密码的私钥,当我启动程序时,我有一个运行时异常,表示算法不可用。但在其他电脑上它工作正常!有帮助吗?

private static void generatePrivateKey(String pwd) {

    try {
        PBEKeySpec keySpec = new PBEKeySpec(pwd.toCharArray());
        SecretKeyFactory kf = SecretKeyFactory.getInstance("PBEWithHmacSHA256AndAES_128");
        PRIVATE_KEY = kf.generateSecret(keySpec);
    } catch (NoSuchAlgorithmException | InvalidKeySpecException e) {
        e.printStackTrace();
    }
}

运行时异常: enter image description here

1 个答案:

答案 0 :(得分:0)

有多种可能性:

  1. 可能是JRE已被修改
  2. 已安装其他加密提供程序。由于您未在ScretKeyFactory创建中指定提供程序,因此您不知道使用了哪个提供程序。在Oracle JRE中,您需要的算法由SunJCE提供。因此以下内容应该有效:SecretKeyFactory.getInstance("PBEWithHmacSHA256AndAES_128", "SunJCE");