如何使用hash_hmac()

时间:2015-06-21 13:45:56

标签: php hash

我收到一封用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同样的问题。

上面的代码在我的计算机上对我有用,但是当上传到共享主机时,出现了上述问题。 赞赏,

皮特

1 个答案:

答案 0 :(得分:2)

问题已解决......

经过一整天的努力解决这个问题后,我在$pass php函数中包装了trim($pass)。去搞清楚。感谢所有花时间协助投入的人。

皮特