尝试从java x509密钥转换为php并解码字符串

尝试从java x509密钥转换为php并解码字符串,java,php,openssl,x509,phpseclib,Java,Php,Openssl,X509,Phpseclib,有人可以帮助将代码从java转换为php吗?请阅读下面的更多内容 所以。。我得到了这段代码。。我正在尝试转换为php(5.{3,4,5}..没关系..我只是不想运行tomcat之类的东西) 在我阅读时,它从x509获取公钥,并根据x509规范使用公钥对获取的字符串进行解码 我一直在php中尝试这样做,但运气不好 $key = "MIIBuDCCASwGByqGSM44BAEwggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9E.............long 593

有人可以帮助将代码从java转换为php吗?请阅读下面的更多内容

所以。。我得到了这段代码。。我正在尝试转换为php(5.{3,4,5}..没关系..我只是不想运行tomcat之类的东西)

在我阅读时,它从x509获取公钥,并根据x509规范使用公钥对获取的字符串进行解码

我一直在php中尝试这样做,但运气不好

$key = "MIIBuDCCASwGByqGSM44BAEwggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9E.............long 593 char stuff here";
$key = "-----BEGIN PUBLIC KEY-----\n" . wordwrap($key, 64, "\n", true) . "-----END PUBLIC KEY-----"; // no \n before the ----END because it already has one
$key = openssl_pkey_get_public($key);
$key = openssl_pkey_get_details($key);
$key = "-----BEGIN PUBLIC KEY-----\n" . wordwrap(base64_encode($key['dsa']['pub_key']), 64, "\n", true)."\n-----END PUBLIC KEY-----";
        $data = null;
        openssl_public_decrypt($todecode, $data, $key);
这叫什么

PHP警告:openssl\u public\u decrypt():密钥参数无效 公钥

在phpseclib()中也尝试过类似的方法

这叫什么

openssl_public_decrypt():此PHP版本不支持密钥类型

就像这样:

include('BigInteger.php');
include('ASN1.php');
include('X509.php');
$key = "MIIBuDCCASwGByqGSM44BAEwggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9E.............long 593 char stuff here";
$key = "-----BEGIN CERTIFICATE-----\n" . wordwrap($key, 64, "\n", true) . "-----END CERTIFICATE-----";
$x509 = new File_X509();
$cert = $x509->loadX509($key);
print_r($cert);
什么也不叫。。。此外:

$key = "MIIBuDCCASwGByqGSM44BAEwggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9E.............long 593 char stuff here";
$key = "-----BEGIN CERTIFICATE-----\n" . wordwrap($key, 64, "\n", true) . "-----END CERTIFICATE-----";
echo openssl_x509_read($key);
openssl_x509_read():无法将提供的参数强制转换为x509证书

我没有主意了


有人可以帮助将代码从java转换为php吗


有什么想法吗。。非常感谢。如果已经回答了,请不要开枪(我在谷歌上搜索并找到了信息,但没有成功申请。提前谢谢。

任何人都可以帮助将该代码从java转换为php吗?我认为这个问题非常清楚。长话短说,从你发布的所谓X.509证书的片段中,我可以告诉你,它实际上不是X.509证书。更多信息:好的,这是一个证书。)y、 很好。现在,我希望我知道如何使用它在php中模拟该函数:|到目前为止没有运气..我不太明白该函数现在做什么,因为我刚刚了解dsa用于签名…使用php的OpenSSL绑定,您可能需要做的是通过从公钥创建CSR,从公钥创建X.509证书ey.一旦完成了,你就可以使用签名验证功能了。顺便说一下(点击左边的private\u encrypt/public\u decrypt,然后转到使用openssl解密选项卡),忘了感谢很多非常好的答案!现在..生成CSR不也需要私钥吗?
include('BigInteger.php');
include('ASN1.php');
include('X509.php');
$key = "MIIBuDCCASwGByqGSM44BAEwggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9E.............long 593 char stuff here";
$key = "-----BEGIN CERTIFICATE-----\n" . wordwrap($key, 64, "\n", true) . "-----END CERTIFICATE-----";
$x509 = new File_X509();
$cert = $x509->loadX509($key);
print_r($cert);
$key = "MIIBuDCCASwGByqGSM44BAEwggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9E.............long 593 char stuff here";
$key = "-----BEGIN CERTIFICATE-----\n" . wordwrap($key, 64, "\n", true) . "-----END CERTIFICATE-----";
echo openssl_x509_read($key);