代码之家  ›  专栏  ›  技术社区  ›  eskoba

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

  •  0
  • eskoba  · 技术社区  · 11 年前

    我有一个创建大整数值的函数。我想使用这些值作为密钥库的密钥条目。我想知道是否有办法将这些大整数值作为密钥添加到密钥库中。我试图将大整数值强制转换为密钥,但出现了一个错误,即大整数无法强制转换为私钥。这是我迄今为止取得的最好成绩。

    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));
    

    由于这不起作用,我不知道如何将我希望的值作为secretkey添加到密钥库中。下面是我收到的错误消息

    java.math.BigInteger cannot be cast to javax.crypto.SecretKey
    
    1 回复  |  直到 11 年前
        1
  •  0
  •   Srinath Ganesh    11 年前
    • a tutorials
    • generateSecret() api

      PBEKeySpec keySpec=新PBEKeySpec(密码.toCharArray());

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

      SecretKey密码密钥=kf.generateSecret(密钥规范);