我有一个applet,它使用“foo.key”文件和字符串密码来生成一个privateKey对象,使用BouncyCastle apis。然后使用此privateKey对象和诸如“MYNAMEHERE”的字符串创建签名。我所知道的是,用于生成此签名的algorythm是RSA。
我想要做的是在PHP中解密(或验证)此签名。我有两个文件publicKey(file.cer)和privateKey(file.key),用于在Java中生成privateKey对象。
我尝试在PHP中使用openssl_verify函数,传递值:
openssl_verify(“MYNAMEHERE”,$ signature,“file.cer”),其中$ signature包含在Java中生成的签名对象的String表示:new String(signature)。
我不知道这个过程是否正确验证签名,或者在使用此功能之前我必须做什么样的编码/解码过程。
我希望有人指出我正确的方向!
提前致谢!
答案 0 :(得分:0)
您没有提供足够的信息,例如实际签名或如何编码。通常RSA表示使用SHA-1(Google it)的PKCS#1 1.5模式下的RSA,它或多或少是当今使用的默认签名生成/验证算法。在这种情况下,验证应按照您的描述进行。不再需要密码,它可能只用于解密私钥。您仍然可以使用私钥来查看PHP / openssl中的标志是否确实创建了相同的数据。如果不是,则可能使用了不同的哈希或PKCS#1 v2.1签名。