PHPでランダムな文字列を生成するには「openssl_random_pseudo_bytes()」を使用します。
注意点は「openssl_random_pseudo_bytes()」で生成されるのはバイナリであること。そのまま表示するとおかしなことになります。
1 2 3 4 5 6 7 |
$ php -a Interactive shell php > $kamo=openssl_random_pseudo_bytes(16); php > echo $kamo; 処5s娟・撈F[ php > |
人間の目でみてわかるようにするには「bin2hex()」でバイナリから16進数に変換してあげる必要があります。
1 2 3 4 |
php > php > echo bin2hex($kamo); 81bd683573160fd52ff62e96d9fd465b php > |
一般的には、以下のように、「bin2hex()」と「openssl_pseudo_bytes()」をまとめて使用することが多いです。
1 2 3 4 5 6 7 |
$ php -a Interactive shell php > $kamo=openssl_random_pseudo_bytes(16); php > echo $kamo; dfe7067195be7dd1ad7bf3560dadbcc9 php > |
ちなみに、echoした値が先ほど上で表示した内容と異なっているのは、「openssl_pseudo_bytes()」が生成したバイナリが毎回異なるからです。