2013-08-26 146 views
0

我有創建大整數值的函數。我想使用這些值作爲密鑰庫的密鑰條目。我想知道是否有將這些大整數值作爲祕密密鑰添加到密鑰庫的方法。我試圖將大整數值轉換成祕密密鑰,但它得到的錯誤是大整數不能被轉換成祕密密鑰。到目前爲止,這裏是最好的。如何將預定值作爲密鑰傳遞給密鑰庫

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

因爲這不起作用我不知道我怎麼可以添加一個值,我希望作爲keykey的密鑰。下面是我得到

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

回答

0
  • a tutorials
  • generateSecret() api

    PBEKeySpec keySpec錯誤消息=新PBEKeySpec(password.toCharArray());

    SecretKeyFactory kf = SecretKeyFactory.getInstance(「PBEWithMD5AndDES」);

    SecretKey passwordKey = kf.generateSecret(keySpec);

+0

我感謝您的回答,但儘管我擺脫了鑄造錯誤,但出現了一個新錯誤:不能存儲非私鑰,雖然我特別存儲了secretkey。 – eskoba

+0

粘貼錯誤日誌 –

+0

錯誤:java.security.KeyStoreException:無法存儲非私鑰//當我嘗試在此代碼上設置密鑰存儲區的setEntry()時,會發生非私人密鑰ks.setEntry(「secretKeyAlias」,skEntry, new KeyStore.PasswordProtection(密碼)); – eskoba

相關問題