2014-11-23 25 views
0

我正在嘗試使用來自GNU-CRYPTO的加密算法。 但是,每當我嘗試我得到一個:java.lang.SecurityException:JCE不能驗證提供程序GNU-CRYPTO'GNU-CRYPTO:JCE無法驗證提供者GNU-CRYPTO

奇怪的是我可以使用這個包中的所有哈希函數通常,但是當我嘗試使用密碼我得到那些,爲AES,DES,DESede ...

基於這一點,我認爲安裝進展良好。另外,當我與其他提供者(BC,SUN)一起使用我的代碼時,它正常工作。

任何人都可以幫助我。

algorithm="DES"; 
    provider="GNU-CRYPTO"; 
    generator = KeyGenerator.getInstance(algorithm); <-works 
    generator.init(randGenerator); 
    SecretKey key = generator.generateKey(); 

    cipherEncryption = Cipher.getInstance(algorithm, provider); <- stops here 

回答

2

這可能是由於該項目已被集成到GNU classpath中。這意味着最後簽名的供應商是1.4。高達1.5,你必須爲每個Java版本創建你的庫的簽名版本,所以1.4的版本可能與1.5和更高版本不兼容(例如檢查bouncy類庫,它爲每個Java版本單獨下載高達1.5 )。此外,證書可能已過期。

請使用實際維護的加密庫。首先應該不需要GNU加密。

+0

感謝您的支持。我同意,不應該使用它。我實際上不是在真正的項目中使用這個庫。這是我們在大學所做的研究項目。 – Victor 2014-11-23 19:02:34

+0

複述Torvalts,這是一個藉口:) – 2014-11-23 20:14:25

相關問題