2011-12-29 122 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