2010-04-24 43 views
1

我想在java中的加密解密代碼。當我試圖用JDK和類中的代碼用main方法運行它時,它運行正常。但是當我試圖在Tomcat中運行相同的代碼時,tomcat會拋出異常:Java算法HmacSHA256不可用

java.security.NoSuchAlgorithmException:算法HmacSHA256不可用。

任何人都可以指導我正確的方向嗎?

謝謝。

+0

您是否對測試和Tomcat使用相同的JDK? – 2010-04-24 15:08:35

回答

1

你只是運行一個不同的JRE。 看看這個頁面告訴你哪一個可用。

http://java.sun.com/javase/6/docs/technotes/guides/security/SunProviders.html

+0

你好 我試過這個鏈接,發現JCE提供程序的HmacSHA256,我認爲默認情況下,tomcat從本地系統的環境變量中獲取JRE,所以我甚至在tomcat的庫中使用了JCE.jar,但它仍然不起作用。你能指導我如何使本地圖書館可用或一些第三方庫可以用來代替。 謝謝 – la89ondevg 2010-04-25 05:15:52

+0

@ user324929你是說你沒有合適的JRE?我會建議安裝一個更新的,或更改爲支持的加密。如果您想知道如何在Java中添加JCE提供程序,我建議您在此網站上打開另一個問題,這實際上並不是我的專業領域。 – 2010-04-25 05:51:23

+0

你好, 感謝你的評論,因爲你建議我重新配置tomcat的JRE設置(JRE_HOME),並通過ant腳本使我的應用程序發生了戰爭,因此所有庫都包含在內,並且工作正常。 謝謝 – la89ondevg 2010-04-26 07:29:38

0

在這裏,我回答我的問題我張貼以上。我認爲這個問題的解決方案是,確保正在使用的服務器的所有設置都必須正確配置,在我使用的是我使用的Apache Tomcat的JRE_HOME,並正確包含servlet和類使用的每個libararies(更好的寫法一個螞蟻腳本,以便它可以用於未來的小改動)。 謝謝