如何使用sn.exe生成的密钥在php中签名?

时间:2009-12-08 08:42:33

标签: .net php cryptography

这是让C#和PHP交换签名数据的另一个问题。在我的场景中,我在客户端使用公钥进行了签名的C#程序集。我还在服务器上有一个带有私钥的PHP页面。我希望能够使用私钥在PHP中签署一些数据,并在客户端上使用C#中的公钥检查签名。

我已经找到了如何使用sn.exe(duh)生成公钥/私钥文件。这是 格式我需要.NET来签署程序集等。一旦签名,程序集可以提供公钥作为属性(类似Assembly.GetName().PublicKey

另外,我已经想到,我可能想使用openssl_sign()函数为数据创建签名。该示例显示从.pem文件中读取固定长度的字节。我没有这个文件。

我想.pem文件只是存储公钥/私钥信息的一种方式,与我可以使用CspBlob生成的XML和RSACryptoServiceProvider内容相当。这些格式之间有什么关系?如何将一个转换为另一个?

1 个答案:

答案 0 :(得分:1)

要交换安全信息,您应该使用由sn.exe生成的私有/公共对,因为它意味着用于签署.NET程序集。假设两种语言都正确地实现了加密算法,您只需要使用相同的密钥(字符串值)和相同的算法。不能那么难=)

请看一下:Generating Keys for Encryption and Decryption,因为它包含有关如何在.NET端使用公钥/私钥的更多信息。