Stanislav Martynov, слушай. Я не сказал что 100% данных надо держать в памяти. Это unreal. Но в топике мало информации о структуре ответа пользователю. Я бы пошел от этого.
Вообще смешались в кучу кони и люди. Aes/des это симметричное шифрование. Диффи хелман - это ЭЦП. Это все разное и его нельзя писать через запятую. Все равно что жёлтое с квадратным.
Данная задача решается в целых числах с помощью алгоритма Брезенхема для окружности. А точнее для ее восьмой части. А чтобы получить всю площадь целых точек, то нужно брезенхем применить несколько раз для средней части круга (как мясная часть бургера) и для двух боковушек (хлеб). И сложить все.
Saboteur, да вы правы. Поэтому я ещё раз для автора акцентирую что хеш-функцию с солью нужно рассматривать как новую неизвестную функцию и для нее соотв надо генерить новый радужный сет таблиц.
Если хеш функция известна и популярна (md5,sha) то анализ значения проводят на радужных таблицах (rainbow tables). Для неизвестных или экзотических функций, энтузиасты генерируют таблицы сами. Лет 10 назад некоторые наборы таких готовых таблиц можно было найти в torrents.
Да. Рекурсия может быть менее читабельна. Но иногда она безальтернативна когда вы описываете формы Бэкуса Науэра например. Выражение содержащее под-выражения описать можно только через рекурсивный шаблон.