Java php中带RSA的MD5
我试图在php中实现数字签名,如下面的java示例代码所示:Java php中带RSA的MD5,java,php,rsa,digital-signature,phpseclib,Java,Php,Rsa,Digital Signature,Phpseclib,我试图在php中实现数字签名,如下面的java示例代码所示: Signature rsaSig = Signature.getInstance("MD5withRSA"); RSAPrivateKey clientPrivateKey = readPrivateKeyFromFile(fileName); rsaSig.initSign(clientPrivateKey); String source
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')