2015-05-03 122 views

回答

2

从文档是否适合openssl_sign()

//data you want to sign 
$data = 'my data'; 

//create new private and public key 
$new_key_pair = openssl_pkey_new(array(
    "private_key_bits" => 2048, 
    "private_key_type" => OPENSSL_KEYTYPE_RSA, 
)); 

openssl_pkey_export($new_key_pair, $private_key_pem); 

//create signature 
openssl_sign($data, $signature, $private_key_pem, OPENSSL_ALGO_SHA256); 

echo base64_encode($signature); 

当然,如果你已经有了一个私钥,你可以跳过生成一个,只是在openssl_sign()直接使用它作为$private_key_pem参数。

+0

我不确定签名是否真的是你要找的。您是否尝试设置https? – AlliterativeAlice

+0

我在我的最后(客户端)有xml文件和数字签名,现在,服务器想要先验证我的数字签名和xml,然后才能调用任何事务。现在,问题是我不知道如何在验证之前签署xml。 – PHP

+0

总之,我需要对请求数据(XML)进行数字签名,然后他们会验证签名,所以我很困惑,因为他们给了数字签名/证书。我不知道这有什么用处。 – PHP