2015-05-03 162 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