哪种是在PHP中创建加密唯一令牌的最安全方法

时间:2014-08-18 12:08:59

标签: php yii cryptography token

我有这方面的工作我想就最安全的创建令牌(对于API)提出一些建议,并且他们中的任何一个都会遇到任何问题吗?

选项A:

$token = bin2hex(openssl_random_pseudo_bytes(16));

或选项B:

// $username - unique username for this user
$token = hash('sha512', sha1($username.time().rand(1000, 9999)));

1 个答案:

答案 0 :(得分:3)

虽然这个问题偏离主题,但很有意思。

我的回答:选项A.

选项B包含至少一个可预测值$ username。 time()值可能是可预测的,如果可以猜到种子,则rand()是可预测的。

看看这个:https://crackstation.net/hashing-security.htm

编辑添加:当然,如果令牌不必保密,它就没有任何区别。您可以使用用户名。