2011-11-21 62 views
0

我想從幾天前我沒有任何關於簽名和驗證數據的知識開始,直到我們得到這個異常。Javascript標誌和java驗證 - 例外

有一個在手機上運行的Droid應用程序(讓我們稱它爲電話應用程序中的PA),它可以遠程與REST API項目通信(讓我們稱之爲RA)。 PA使用RSAKey API(http://www9.atwiki.jp/kurushima/pub/jsrsa/)對所有數據進行簽名,並使用java中的簽名類對PA進行驗證。顯然,涉及私鑰和公鑰。

PA到RA在我的本地盒上工作順利,當通信是在實際測試服務器上的RA時失敗。請注意我的本地盒子是Windows並且測試服務器Unix。

原因很簡單 - Signature的驗證方法(http://download.oracle.com/javase/1.4.2/docs/api/java/security/Signature.html#verify(byte []))類只返回false。但問題是爲什麼?爲什麼如果它在我的本地盒子上運行?

任何幫助,將不勝感激。謝謝。

回答

0

我不知道什麼Strelok上面的意思,但問題已解決。

問題在於正在簽名的URL中有一個主機名,它在到達其餘api之前通過apache傳遞。 Apache設置將主機名改爲IP地址。所以被簽名的URL與正在驗證的URL不同。

通過更改apache設置問題已解決。

感謝您的閱讀。

+0

你已經訪問了這個網站近兩年了,你真的不知道@Strelok對他的評論意味着什麼? –