这里真的是新的Symfony 2。我试图实现secureRandom类和nextType(int)来生成一个32字符的随机字符串。但是,该方法似乎返回非标准字符(UTF8)。Symfony 2.3 nextBytes()不返回预期结果
代码:
use Symfony\Component\Security\Core\Util\SecureRandom;
$generator = new SecureRandom();
$random = $generator->nextBytes(32);
...
结果:
有没有指定我只想标准的英文字符的方法吗? 提前谢谢!
谢谢你的回答。这将nextBytes(32)的结果转换为常规文本,但字符串的长度远远长于32.我必须使用substr()来缩短它。是否有更好的解决方案来生成一个随机的32个字符串? substr(bin2hex($ generator-> nextBytes(32)),0,32); – Pathsofdesign
那是因为bin2hex是字节的十六进制表示。如果你想要一个32个字符的字符串,你可以使用nextBytes(16);显示为字符串的32个字节实际上是128个字符。以十六进制显示的地方是64。 – Chausser