2012-01-10 139 views
0

我有一些正在使用這個函數的代碼,我得到一個錯誤,說明這個調用是一個未定義的函數。PHP HmacSHA256()函數無法識別

我可能使用較舊的PHP版本。這裏是我的phpinfo()的輸出: http://problemio.com

但我不知道如何做到這一點的功能相當於這對於其他一些服務的要求,我需要發送的輸出到。

的代碼目前看起來是這樣的:

$encoded_string_to_sign = URLEncode(Base64_Encode(HmacSHA256($string_to_sign))); 

感謝您的幫助, 亞歷

回答

2

這不是一個內置的PHP函數。您可能正在尋找hash_hmac()和invokation,如:

$hashed = hash_hmac("sha256", $data, $key); 

您使用的可能是代碼有定義或東西的包裝功能。

(從你phpinfo()輸出似乎很hash擴展存在。)

+0

我編輯了原始問題。我不確定$ key參數應該是什麼。關鍵參數是什麼?謝謝! – GeekedOut 2012-01-11 00:05:57

+0

好吧,這是一個鹽/關鍵。你需要一個,否則它只是一個常規的散列函數,而不是HMAC。另見http://en.wikipedia.org/wiki/HMAC – mario 2012-01-11 00:08:04

+0

這是我必須自己做的事情嗎?還是補充?我只是沒有得到它在功能上的使用。它應該是什麼? :) – GeekedOut 2012-01-11 00:09:48

1

你可以嘗試使用hash_hmac()"sha256"作爲第一個參數。

+0

我編輯了原始問題。它現在應該看起來如何?我不確定第三個參數是什麼。 – GeekedOut 2012-01-11 00:05:21