简体   繁体   English

在 php 中使用 RSA 的 MD5

[英]MD5 with RSA in php

I'm trying to implement digital signature in php as in java sample code below:我正在尝试在 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);

My php code :我的 php 代码:

    $rsa = new Crypt_RSA();
    $rsa->loadKey('...'); // in xml format

    $plaintext = '...';

    $rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1); 
    $signature = $rsa->sign($plaintext);

But looks like some thing is missing.不过好像少了点什么。 We should get same signature as java code returns.Can anybody guide me in this?我们应该得到与 java 代码返回相同的签名。有人可以指导我吗?

By default phpseclib uses sha1 as the hash.默认情况下,phpseclib 使用 sha1 作为哈希。 You probably need to do $rsa->setHash('md5') .您可能需要执行$rsa->setHash('md5')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM