在PHP中使用RSA的MD5

我正在尝试在php中实现数字签名,如下面的java示例代码:

Signature rsaSig = Signature.getInstance("MD5withRSA"); RSAPrivateKey clientPrivateKey = readPrivateKeyFromFile(fileName); rsaSig.initSign(clientPrivateKey); String source = msg; byte temp[] = source.getBytes(); rsaSig.update(temp); byte sig[] = rsaSig.sign(); BASE64Encoder encoder = new BASE64Encoder(); return encoder.encode(sig); 

我的PHP代码:

  $rsa = new Crypt_RSA(); $rsa->loadKey('...'); // in xml format $plaintext = '...'; $rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1); $signature = $rsa->sign($plaintext); 

但看起来有些东西不见了。 我们应该得到与java代码返回相同的签名。任何人都可以指导我吗?

默认情况下,phpseclib使用sha1作为哈希。 你可能需要做$rsa->setHash('md5')