2012-06-28 4 views
0

Учитывая, что настройки времени для двух машин не синхронизированы, все же возможно запустить сценарий PHP (например) в каждом из них, и они будут генерировать одинаковый случайный код при каждом выполнении x часов?Создайте код каждые x часов, который всегда будет одним и тем же на двух машинах?

Например:

Если я запустить сценарий в сервере А на 1PM он будет возвращать «random182». Если я запустил скрипт на сервере B на 1PM, он вернет «random182».

Если я запустил скрипт на сервере A на 2PM, он вернет «random747». Если я запустил скрипт на сервере B на 2PM, он вернет «random747».

Если возможно, как и на какие функции я должен смотреть?

+1

Ваш вопрос остается неясным, какой код вы хотите генерировать? – xdazz

+0

@xdazz просто случайный код, например, пример. – IMB

ответ

1

Машины нуждаются в общем initialisation vector (IV) для их псевдослучайной последовательности.

Классически это системное время (если безопасность не имеет значения). Таким образом:

  • синхронизировать свое время, например. ntp (в приложении или машинном уровне)
  • или передать в IV в сценарий, когда вы называете его, то есть вызываемым говорит, что IV является
+0

I второй этот. Если вы используете генератор preudo-random, используйте время как его семя. Вы просто должны быть уверены, что обе системы синхронизированы по времени. –

0

Время PHP возвращается в соответствии с указанным значением в файле php.ini. Поэтому сначала вычислите разницу, затем добавьте это ко времени, которое запускается «поздно», а затем выводит все, что вам нравится.