我正在與hash_hmac()
在註冊生成的密鑰返回一個不同的密碼密鑰,並使用完全相同的代碼鍵返回在登錄。如何獲得一致的使用返回hash_hmac()
在註冊時的代碼使用方法是:
$hash_key = 'mL993nHbLJe8dOeC242A8W';
$hmac = hash_hmac('sha256', $pass, $hash_key);
$hmac = substr($hmac, 0, 50);
,並用於創建密鑰來比較的代碼是:
$hash_key = 'mL993nHbLJe8dOeC242A8W';
$hmac = hash_hmac('sha256', $pass, $hash_key);
$hmac = substr($hmac, 0, 50);
這裏是正在返回什麼:
53bccd32d23baf691bf9c0a01b0deaa079107a72b72f4a4c08 --- Pass Key Generated by Login
4c30997095ad3f061246ff22d096d3537f1d9d22653f533653 --- Pass Key Retrieved which was Generated at Registration
我使用的substr($hmac, 0, 50);
隨每個註冊而不同,但總是返回50個計數。不確定這是否是一個好主意,歡迎觀點,但同樣的問題發生在有或沒有substr($hmac, 0, 50);
。
我也曾嘗試sha512
有同樣的問題。
上面的代碼爲我工作在WAMP我的電腦上,但是當上傳到共享主機發生上述提到的問題。 Assitance認識,
皮特
什麼是您傳遞給該值的$ pass? –
在上面的例子中'$ pass ='!Pb57Mb56!';' – petebolduc
你的主機有什麼樣的設置?我使用LAMP(Linux Mint 17.1,Apache2,最新的穩定php),它對我來說很好。 –