這裏真的是新的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