Java 在php中以字符串形式使用私钥签名

Java 在php中以字符串形式使用私钥签名,java,php,sign,php-openssl,Java,Php,Sign,Php Openssl,我有一个作为字符串存储的私钥(硬编码),我需要用该密钥对字符串签名 我可以使用openssl,但在如何使用我的私钥中找不到。我只看到如何使用pem文件或与证书相关的东西,而我的过程与证书或类似的东西无关 私钥来自Java桌面应用程序,并与类一起生成 有人对此有什么暗示吗 谢谢大家! 编辑:其中一个私钥作为示例: "MIHGAgEAMIGoBgcqhkjOOAQBMIGcAkEA/KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B 81uRpH5t9jQTxeE

我有一个作为字符串存储的私钥(硬编码),我需要用该密钥对字符串签名

我可以使用openssl,但在如何使用我的私钥中找不到。我只看到如何使用pem文件或与证书相关的东西,而我的过程与证书或类似的东西无关

私钥来自Java桌面应用程序,并与类一起生成

有人对此有什么暗示吗

谢谢大家!

编辑:其中一个私钥作为示例:

"MIHGAgEAMIGoBgcqhkjOOAQBMIGcAkEA/KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B
81uRpH5t9jQTxeEu0ImbzRMqzVDZkVG9xD7nN1kuFwIVAJYu3cw2nLqOuyYO5rahJtk0bjjFAkBn
hHGyepz0TukaScUUfbGpqvJE8FpDTWSGkx0tFCcbnjUDC3H9c9oXkGmzLik1Yw4cIGI1TQ2iCmxB
blC+eUykBBYCFFVbS2ccW7j+SMOiro2PzB1FG/TL"
它是密钥的Base64表示形式

我的当前代码将密钥保存在名为pem的文件中:

$pkeyid = openssl_pkey_get_private("key.pem");
echo openssl_sign($data, $signature, $pkeyid);
echo "<br/>";
echo $signature;
$pkeyid=openssl_pkey_get_private(“key.pem”);
echo openssl_-sign($data,$signature,$pkeyid);
回声“
”; echo$签名;

但是openssl\u签名没有响应任何内容,即使是错误的,因为它在出现故障时应该是错误的…

您的密钥是什么样子的?我在问题中添加了一个示例密钥。尝试将数据保存到文件中?但它不是pem格式的?好吧,我试试。好吧,不管我怎么试,它都完全不起作用。我还尝试通过放入------BEGIN ENCRYPTED PRIVATE key------和all来格式化密钥,但我只得到
提供的密钥参数,不能强制转换为私钥。我很绝望…你的密钥看起来像什么?我在问题中添加了一个示例密钥。尝试将数据保存到文件中?但它不是pem格式的?好吧,我试试。好吧,不管我怎么试,它都完全不起作用。我还尝试通过放入------BEGIN ENCRYPTED PRIVATE key------和all来格式化密钥,但我只得到
提供的密钥参数,不能强制转换为私钥。我绝望了。。。
$pkeyid = openssl_pkey_get_private("key.pem");
echo openssl_sign($data, $signature, $pkeyid);
echo "<br/>";
echo $signature;