如何将预定值作为密钥传递给密钥库

时间:2013-08-26 17:38:42

标签: java keystore secret-key

我有创建大整数值的函数。我想将这些值用作Keystore的密钥条目。我想知道是否有办法将这些大整数值添加为密钥库的密钥。我试图将强制转换大整数值转换为秘密密钥但是它收到的错误是大整数无法转换为密钥。这是迄今为止最好的。

KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
char[] password = "ps".toByteArray();
ks.load(null, password);
....
BigInteger sect=getsect();
javax.crypto.SecretKey mySecretKey=(SecretKey)sect;
KeyStore.SecretKeyEntry skEntry =
    new KeyStore.SecretKeyEntry(mySecretKey);
ks.setEntry("secretKeyAlias", skEntry, 
    new KeyStore.PasswordProtection(password));

因为这不起作用我不知道如何将我希望的值作为密钥库的密钥添加。以下是我收到的错误消息

java.math.BigInteger cannot be cast to javax.crypto.SecretKey

1 个答案:

答案 0 :(得分:0)

  • a tutorials
  • generateSecret() api

    PBEKeySpec keySpec = new PBEKeySpec(password.toCharArray());

    SecretKeyFactory kf = SecretKeyFactory.getInstance(“PBEWithMD5AndDES”);

    SecretKey passwordKey = kf.generateSecret(keySpec);