當(dāng)我們使用DES等加密算法時,如下:
Security.addProvider(new com.sun.crypto.provider.SunJCE());
//獲得密鑰
Key generateKey = new KeyTools().getKey(key.getBytes());
Cipher encryptCipher = Cipher.getInstance("DES");
將用到該算法類對應(yīng)的工程在Eclipse中發(fā)布為web工程,通過Eclipse啟動Tomcat服務(wù),可能會遇到這樣的異常信息:
java.security.NoSuchAlgorithmException: Cannot find any provider supporting DES
網(wǎng)上的解決方案說什么sunjce_provider.jar路徑問題啊,什么需要換成IBM的JDK之類的。。。。。
除了沒換JDK,其他的方法都試過,但是沒一個起作用的。到底有沒有更好的解決方案?
其實很簡單,將編譯好的工程部署好,直接啟動Tomcat而不是通過Eclipse的Tomcat插件啟動,那么將不會出現(xiàn)這樣的異常信息。
原因剖析:
對Eclipse的jar包,它隱掉了SUN公司關(guān)于某些Jar包的簽名信息,這樣當(dāng)你在Eclipse中啟動服務(wù)的話,就可能導(dǎo)致上述的異常。
個人覺得是這樣的原因,因為目前為止也沒看到有誰有更好的解決方案。