代码之家  ›  专栏  ›  技术社区  ›  Daren Thomas

如何使用sn.exe生成的密钥在PHP中签名字符串?

  •  1
  • Daren Thomas  · 技术社区  · 15 年前

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

    我已经知道如何用 sn.exe (DUH)。这就是 .NET对程序集等进行签名所需的格式。一旦签名,程序集就可以将公钥作为属性提供(类似于 Assembly.GetName().PublicKey )

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

    我猜 .pem公司 文件只是存储公钥/私钥信息的一种方法,与XML和 CspBlob 我可以用 RSACryptoServiceProvider . 这些格式之间的关系是什么?如何将一个转换为另一个?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Rubens Farias    15 年前

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

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