在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')
。