Я думаю, что небезопасно иметь только хэш адреса электронной почты, поскольку алгоритм хеширования необратим, но теоретически возможно иметь неправильное письмо, которое имеет тот же хэш, что и правильный.Это верно для md5
алгоритма хеширования и теоретически верно для любого другого.
Я предлагаю использовать какую-то соль (дополнительную полезную нагрузку хэш-функции) или персональные регистрационные ключи, и, разумеется, никогда не используйте md5.
С солью, которую вы знаете и «военные», вы можете получать только хеш-коды от «военных» и будьте уверены, что шифрование достаточно справедливо, чтобы идентифицировать призывников по электронной почте.Но эта техника все еще уязвима для случайного хэширования.
Вероятно, лучший способ убедиться, что электронная почта новобранца действительно действительна, это дать новобранцам уникальные регистрационные коды на «военной» стороне, чем они должны дать вампары регистрационного кода и хеш-кода и соответствующий адрес электронной почты.Чем каждый новобранец должен будет предоставить этот регистрационный код, и вы сможете пересчитать личный хеш новобранца по его электронной почте и регистрационному коду.
Преимущество второго способа заключается в том, что даже вы не сможете легкоbrute форсирует хэши в электронные письма, если «военный» даст вам не только пары кодов / хэшей, но и список кодов для каждого хэша, только один из которых будет правильным.
Обновление: Путь кульминации паранойи.Вы получаете всего несколько хешей от «военных» в два раза больше, чем число новобранцев.Каждый новобранец получает уникальный регистрационный код.Затем вам нужно сначала вычислить хэш регистрационного кода и проверить, есть ли он у вас.Затем вам нужно объединить этот хэш с письмом и проверить, есть ли у вас второй хэш.Таким образом, вы никогда не сможете самостоятельно переписываться по электронной почте.