Как лучше всего генерировать случайную соль для веб-сайта?

request.text возвращает тело ответа Http. поэтому, если вы хотите получить первое свойство json,
вам следует преобразовать строку в объект json.

Это работает

result = r.text
print(type) # prints str

import json
result = json.loads(result)

print(result[0]) # (...)
5
задан Pure.Krome 30 November 2008 в 10:47
поделиться

3 ответа

Если я понимаю правильно, Вы хотите, чтобы машины совместно использовали значение, и Вы не хотите, чтобы значение было тем же навсегда. Идеально Вы предпочли бы не хранить его.

Так, имейте "первую" машину, генерируют случайное значение при запуске, (использующий любую энтропию, это может, такие как/dev/random. Если Вы не нуждаетесь в безопасном значении и не имеете достаточной энтропии при запуске для создания того так или иначе, используйте время или безотносительно), и передайте его ко всему другие. Поскольку новые машины присоединяются к кластеру, они должны смочь найти значение от одной машины уже в кластере. Машины, выбывающие, не имеют никакого значения.

Какая машина является "первой"? Ну, если можно всегда загружать одну машину перед какими-либо другими и давать ей время, чтобы перейти к сути дела генерации значения, затем можно использовать тривиальный алгоритм:

1) Ищите другие машины. Если Вы находите один, спрашиваете это значение. 2) Если Вы не находите один, сгенерируйте значение сами.

Если несколько машин запускают сразу затем, они должны решить среди себя, который является "лидером". Вы могли сделать это путем выбора один сами (например, машина объявляет себя "лидер", как только она получает конкретное соединение через администраторский интерфейс: на запуске каждая машина ожидает до него или получает это соединение или получает известие от другой машины, что другая машина является лидером). Это тривиально, чтобы сделать автоматически на кольце с маркерным доступом: машина с наименьшим количеством MAC-адреса или независимо от того, что лидер. Но никто больше не использует кольцо с маркерным доступом...

В другой крайности ненадежной сети я не уверен, что это даже возможно, если все машины не знают, сколькими будет всего (в этом случае, это точно так же, как кольцо с маркерным доступом, за исключением того, что они все говорят друг с другом, пока они не выяснили, кто лидер). С надежной широковещательной передачей, которая является тем, что можно принять в разумных границах на Ethernet, я уверен, что существует оптимальный алгоритм, опубликованный где-нибудь, но я забываю то, что это (если я когда-нибудь знал). Я предположил бы, что все широковещательно передают, кто они думают, что лидер равномерно (включая их собственное требование, если они еще не видели лучший). После того как Вы слушали это довольно долго (приблизительно один интервал), Вы будете знать, кто лидер, и можно начать использовать семя.

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

4
ответ дан 14 December 2019 в 13:50
поделиться

В сценарии веб-фермы ключ машины, сохраненный в machine.config, мог бы быть тем, что Вы ищете. Это - случайным образом сгенерированный хеш, который должен быть тем же через машины в веб-ферме.

2
ответ дан 14 December 2019 в 13:50
поделиться

Вот забавный/интересный путь:

В начале каждого дня, т.е. после 0:00, поиск Твиттер или digg или friendfeed или что-либо, что имеет часто изменяющиеся данные для детали только перед/в 0:00. Все машины получили бы эти те же данные, И они, как гарантируют, изменятся. Для создания этого секретом объедините эту деталь с некоторым секретным ключом или MAC сервера DNS или некоторой такой вещи.

Я думаю, что это достаточно просто и забавная вещь. Конечно, это означало бы, что Ваш веб-сайт будет зависеть от этого внешнего веб-сайта для тривиальной вещи и мог бы быть трудным, если сайт снизится. Но в таких случаях можно сохранить и продолжить данные предыдущего дня.

Просто требуемый для записи об этом как забавный/интересный путь :)

0
ответ дан 14 December 2019 в 13:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: