random_bytes

函数
random_bytes ( $bytes )
参数
  • (int) $bytes
    Required:
返回值
  • (string)
定义位置
相关方法
random_intdo_robotsdo_meta_boxesrandomcompat_strlenrandomcompat_substr
引入
-
弃用
-

random_bytes: 这是一个PHP函数,用于生成一个随机的字节字符串。它可以用于密码学目的或生成随机数据。

由ext/mcrypt提供支持(幸好不是libmcrypt)。

function random_bytes($bytes)
    {
        try {
            /** @var int $bytes */
            $bytes = RandomCompat_intval($bytes);
        } catch (TypeError $ex) {
            throw new TypeError(
                'random_bytes(): $bytes must be an integer'
            );
        }

        if ($bytes < 1) {
            throw new Error(
                'Length must be greater than 0'
            );
        }

        /** @var string|bool $buf */
        $buf = @mcrypt_create_iv((int) $bytes, (int) MCRYPT_DEV_URANDOM);
        if (
            is_string($buf)
                &&
            RandomCompat_strlen($buf) === $bytes
        ) {
            /**
             * Return our random entropy buffer here:
             */
            return $buf;
        }

        /**
         * If we reach here, PHP has failed us.
         */
        throw new Exception(
            'Could not gather sufficient random data'
        );
    }
}

常见问题

FAQs
查看更多 >