Безопасные от единицы квадратные корни

Я сказал бы, что это зависит от приложения Вашей базы данных.

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

Pro:

  • утечка А Вашего DB [только 110] не представят адреса электронной почты.

Недостатки:

  • Шифрование означает потерю производительности.
  • Выделяют действий базы данных, будет более твердым если не невозможный.
9
задан kvb 1 October 2009 в 20:48
поделиться

2 ответа

Разрешение ненулевых обобщенных констант может очень легко нарушить безопасность системы типов для единиц (см. Статьи Эндрю Кеннеди ). Я считаю, что ответ на ваш последний вопрос заключается в том, что sqrt действительно волшебство в некотором смысле в том смысле, что не должно быть возможности определить параметрическую функцию с такой сигнатурой типа обычными средствами. Однако возможно делать то, что вы хотите (по крайней мере, в текущей версии F #), используя преимущества бокса и преобразования:

let sqrt (x : float<'u^2>) =
  let x' = (float x) ** 0.5 (* delete unit and calculate sqrt *)
  ((box x') :?> float<'u>)
6
ответ дан 4 December 2019 в 19:35
поделиться

@kvb прав, в более общем плане:

Если у вас есть алгоритм, не поддерживающий единицы измерения (например, вы пишете «корень куба»), и вы хотите поместить на него единицы измерения, вы можете обернуть алгоритм в функцию с правильной сигнатурой типа и использовать, например, «float», чтобы «отбросить» единицы по мере их поступления, и подход «box-and-downcast», чтобы «добавить обратно» соответствующие единицы на выходе .

В выпуске RTM (после Beta2) F # будет иметь примитивные библиотечные функции для «добавления обратно единиц», так как подход box-and-downcast в настоящее время является своего рода хаком, позволяющим преодолеть недостаток этих примитивов в язык / библиотека.

6
ответ дан 4 December 2019 в 19:35
поделиться
Другие вопросы по тегам:

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