PHP Conference Japan 2020
Regular session (25 mins)

PHPと乱数

ariaki4dev ariaki ariaki4dev
6

PHPには乱数生成関数がたくさん実装されていますが、いったいどれを使えばいいでしょうか?

rand()
mt_rand()
random_int()
random_bytes()
openssl_random_pseudo_bytes()

なんでこんなに関数があるんでしょうね。
みなさんはどの関数をどんな目的で使ってますか?それって本当に安全ですか?
それぞれどんな歴史的経緯があり、アルゴリズムや実装ってどうなっているでしょうか。
このセッションでは、そもそも乱数とは何か基礎知識からはじめ、PHPでの実装を踏まえながら解説を進めます。
さぁ、PHPの闇に触れましょう。