我需要在我的服务器上用 php 签名数据,并在我的 Java 桌面应用程序上验证签名数据。我的问题是我没有成功生成两种语言都接受的密钥......
我的第一次尝试是使用 Java KeyPairGenerator生成密钥,但如该问题所示,我无法让 openssl 读取密钥。
现在我用 openssl 生成了这样的密钥:
$openssl dsaparam 512 < /dev/random > dsaparam.pem
$openssl gendsa dsaparam.pem -out dsa_priv.pem
$openssl dsa -in dsa_priv.pem -pubout -out dsa_pub.pem
我现在尝试用这个代码签署一些东西:
<?php
$data = "test";
$pkeyid = openssl_pkey_get_private("dsa_priv.pem");
echo openssl_sign($data, $signature, $pkeyid);
echo "<br/>";
echo $signature;
?>
结果 ?
openssl_sign(): supplied key param cannot be coerced into a private key in ...
我究竟做错了什么 ?谁能帮我生成一个有效的 DSA 密钥并用它签名?