Java — MD5 с RSA в переполнении стека

Я пытаюсь реализовать цифровую подпись в 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-кода. Кто-нибудь может мне помочь?

0

Решение

По умолчанию phpseclib использует sha1 в качестве хеша. Вам, вероятно, нужно сделать $rsa->setHash('md5'),

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]