Что означает руководство PHP под «идентификаторами процессов не уникальными»? Как я могу получить фактический уникальный «идентификатор процесса»? - PullRequest
0 голосов
/ 26 марта 2020

Источник: https://www.php.net/manual/en/function.getmypid.php

Предупреждение Идентификаторы процессов не являются уникальными , поэтому они являются слабым источником энтропии. Мы не рекомендуем полагаться на pids в контекстах, зависящих от безопасности.

Как «идентификатор процесса» не может быть уникальным? Что мне не хватает? И getmyuid() одинаково бессмысленен в том смысле, что он не возвращает никакого полезного идентификатора процесса, а только:

Получает PHP UID владельца скрипта

Короче : Как я могу получить какой-то уникальный идентификатор для текущего (CLI) PHP процесса, откуда он запускается?

1 Ответ

1 голос
/ 26 марта 2020

PID не являются уникальными. Если процесс умирает, ОС может повторно использовать идентификатор для нового. Это не PHP вещь.

Если вы хотите создать уникальные значения, используйте uniqid()

https://www.php.net/manual/en/function.uniqid.php

Если вы ' На linux вы также можете использовать uuidgen в backtics (``):

var_dump(`uuidgen`);
...