2009-12-08 16 views
1

這是獲得C#和PHP交換數據的簽署條線的另一個問題。在我的場景中,我在客戶端使用公鑰在已簽名的C#程序集中。我也有一個私人密鑰在服務器上的PHP頁面。我希望能夠簽下在PHP中的一些數據與私鑰和針對C#的客戶端上的公鑰檢查簽名。如何使用與SN.EXE生成的密鑰登錄PHP字符串?

我已經想通了如何生成與sn.exe(杜)公鑰/私鑰文件。這是 格式,我需要爲.NET簽署組件等。一旦簽署,該組件可提供公共密鑰作爲一個屬性(像Assembly.GetName().PublicKey

而且,我已經想通了,我可能要使用openssl_sign()函數爲數據創建簽名。該示例顯示從.pem文件中讀取固定長度的字節。這個文件我沒有。

我猜.pem文件只是存儲公鑰/私鑰信息,堪比XML和CspBlob東西我可以用RSACryptoServiceProvider產生的一種方式。這些格式之間的關係是什麼?我怎樣才能將一個轉換爲另一個?

回答

1

要交換安全信息,您應該使用而不是使用由sn.exe生成的私有/公共對,因爲這意味着用於簽署.NET程序集。假設兩種語言都正確實施加密算法,只需使用相同的密鑰(字符串值)和相同的算法即可。不能那麼難=)

請看看這裏:Generating Keys for Encryption and Decryption,因爲它包含更多關於如何在.NET端使用公鑰/私鑰的信息。

+0

其實,這並不是容易的事。給定一個由RSACryptoServiceProvider生成的密鑰對,如何將它轉換爲PHP預期的.pem格式? – 2009-12-08 09:49:23

+0

對不起,我不確切知道pem/php組合的工作方式,但也許別人可以幫忙 – 2009-12-08 11:03:00

相關問題