我收到一封用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
同样的问题。
上面的代码在我的计算机上对我有用,但是当上传到共享主机时,出现了上述问题。 赞赏,
皮特
答案 0 :(得分:2)
问题已解决......
经过一整天的努力解决这个问题后,我在$pass
php函数中包装了trim($pass)
。去搞清楚。感谢所有花时间协助投入的人。
皮特