Symfony 2 SecureRandom()返回一个字符

Gin*_*ngi 2 constructor symfony

在我的组实体中,我生成一个随机密钥作为"共享代码":人们可以使用此代码邀请和查找彼此.这是我如何使用它:

public function __construct()
{
    // Random Share Code generation
    $generator = new SecureRandom();
    $this->secureCode = $generator->nextBytes(15); 
}
Run Code Online (Sandbox Code Playgroud)

它有效,但只有一个数字被发送到我的数据库中的vachar字段.我做错了吗?谢谢一堆;-)

Emi*_*aos 6

SecureRandom生成随机二进制数据,而不是随机字符.如果您使用FOSUserBundle,则可以使用其令牌生成器:

$tokenGenerator = $container->get('fos_user.util.token_generator');
$shareCode = $tokenGenerator->generateToken();
Run Code Online (Sandbox Code Playgroud)

  • 文本假设它,但现实不是.`nextBytes()`返回二进制数据.文章陈旧,关于它的[实际API文档](http://api.symfony.com/2.3/Symfony/Component/Security/Core/Util/SecureRandom.html#method_nextBytes)陈述了这一事实. (2认同)