在PHP中使用RSA的MD5 [英] MD5 with RSA in php

查看:278
本文介绍了在PHP中使用RSA的MD5的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm trying to implement digital signature in php as in java sample code below:

            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代码返回相同的签名。任何人都可以指导我吗?

But looks like some thing is missing. We should get same signature as java code returns.Can anybody guide me in this?

推荐答案

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

By default phpseclib uses sha1 as the hash. You probably need to do $rsa->setHash('md5').

这篇关于在PHP中使用RSA的MD5的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆