Я попытался исследовать это, но остались без ответа некоторые вопросы. Я пытался выяснить, как 8-значный пароль превращается в высокоразрядный ключ шифрования. Во время своего исследования я нашел статьи, в которых говорилось о ценности соли.
Предположим, вы можете получить все 256 символов для игры, тогда 8-символьный пароль будет 64-битным. Итак, оставшиеся 64 бита - это просто значение соли. И поправьте меня, если я ошибаюсь, но это сделано для того, чтобы, если кто-то собирался попробовать ВСЕ возможные значения (грубая сила), ему пришлось бы перепробовать все 128-битные, поскольку даже соль неизвестна.
Мои вопросы действительно относятся к этой «солевой» ценности:
- Когда кто-то подает заявку, жестко ли в ней запрограммировано значение соли? И если да, то нельзя ли его получить путем обратного проектирования исполняемого файла?
- Если соль генерируется случайным образом, я предполагаю, что у нее должен быть способ ее дублировать. Итак, разве та функция, которая возвращает случайную соль, не может быть реконструирована, чтобы заставить ее дублировать себя, чтобы получить значение соли?
- Это может выходить за рамки, но если значение соли создается на стороне сервера (отношения клиент / сервер), тогда не нужно ли делиться этим с клиентом, чтобы они могли расшифровать данные, отправленные сервером? И, если он отправляется клиенту, нельзя ли его перехватить, что делает его бесполезным?
- Используется ли какой-либо другой метод, помимо этого «соленого» значения, который может превратить 8-символьную строку в надежный ключ шифрования?