Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.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 签名问题——openssl\u签名_Java_Php_Openssl_Rsa - Fatal编程技术网

Java 签名问题——openssl\u签名

Java 签名问题——openssl\u签名,java,php,openssl,rsa,Java,Php,Openssl,Rsa,在JAVA代码(BouncyCastle库)中,我们使用私钥创建签名。代码如下。 我们的任务是使用PHP获得相同的签名——使用相同的私钥。 尝试使用PHP代码,如 openssl_sign($plainText, /*&*/$signature, $private_key); 但是我们在PHP中得到的签名与在JAVA中得到的签名不同 我们可能有问题,因为openssl_sign()函数不能与“MD5withRSA”一起工作——可能有人知道如何解决这个问题 protected byt

在JAVA代码(BouncyCastle库)中,我们使用私钥创建签名。代码如下。 我们的任务是使用PHP获得相同的签名——使用相同的私钥。 尝试使用PHP代码,如

openssl_sign($plainText, /*&*/$signature, $private_key);
但是我们在PHP中得到的签名与在JAVA中得到的签名不同

我们可能有问题,因为openssl_sign()函数不能与“MD5withRSA”一起工作——可能有人知道如何解决这个问题

  protected byte[] sign(PrivateKey privateKey, byte[] plainText) {
    byte[] signature = null;
    try {
      Signature sig = Signature.getInstance("MD5withRSA");
      sig.initSign(privateKey);
      sig.update(plainText);
      signature = sig.sign();
    } catch(Exception ex) {
      ex.printStackTrace();
    }
    return signature;
  }

openssl无法帮助您解决很多问题,但以下是您如何使用:


使用openssl帮不了你很多忙,但以下是使用openssl的方法:


<?php
include('Crypt/RSA.php');

$rsa = new Crypt_RSA();
//$rsa->setPassword('password');
$rsa->loadKey('-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp
wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5
1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh
3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2
pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX
GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il
AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF
L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k
X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl
U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ
37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=
-----END RSA PRIVATE KEY-----'); // private key

$plaintext = '...';

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

echo bin2hex($signature);