2011-12-29 48 views
0

我有一個使用BouncyCastle apis使用「foo.key」文件和字符串密碼生成privateKey對象的小程序。然後使用這個privateKey對象和一個字符串例如「MYNAMEHERE」創建一個簽名。我所知道的是用於產生這個簽名的算法是RSA。驗證並解密使用pvk.key和BouncyCastle加密apis生成的簽名

我想要做的是在PHP中解密(或驗證)此簽名。我有兩個文件publicKey(file.cer)和privateKey(file.key),用於在Java中生成privateKey對象。

進出口使用PHP中的openssl_verify功能,傳遞的價值觀嘗試:
openssl_verify(「MYNAMEHERE」,$簽名,「file.cer」),其中$簽名包含在Java中生成的簽名對象的字符串表示:新的String(簽名)。

我不知道這個過程是否正確,以驗證簽名,或使用此功能之前我必須做什麼樣的編碼/解碼過程。

我希望有人指出我正確的方向!

在此先感謝!

+0

+1用於獲取充氣城堡入題... – 2011-12-29 17:46:38

+0

@DigitalPrecision,這不是一個非常有建設性的意見,嘗試無諷刺 – 2012-01-02 01:00:12

+0

這個問題是缺乏細節,嘗試給儘可能多的信息可能 – 2012-01-02 01:00:40

回答

0

您尚未提供足夠的信息,例如實際簽名或其編碼方式。通常,RSA意味着使用SHA-1(Google it)的PKCS#1 1.5模式中的RSA,它或多或少是當前使用的默認簽名生成/驗證算法。在這種情況下,驗證應按照您所描述的進行。密碼不再需要,它可能只是用來解密私鑰。您仍然可以使用私鑰來查看PHP/openssl中的簽名確實是否創建了相同的數據。否則,可能使用了不同的哈希或PKCS#1 v2.1簽名。

+0

感謝您的回覆@owlstead 在PHP中嘗試了一些不同的功能後,我在該區域中陷入困境,因此我選擇了使用Java進行驗證,但仍然遇到問題以找出簽名是如何創建的(因爲它不是我誰生成密鑰)。我有兩個文件,.key和.cer。用privateKey簽署一個簡單字符串如「HELLOWORLD」然後用.cer文件驗證它是最好的方法? 我希望你能再次幫助我,提前致謝! – user1121637 2012-01-02 19:17:04

相關問題