Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java php中带RSA的MD5_Java_Php_Rsa_Digital Signature_Phpseclib - Fatal编程技术网

Java php中带RSA的MD5

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

我试图在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')