24.11.2015, 15:59 | #1 |
Гость
|
Хэш функции Why?
Вопрос all?
В 12 используются как минимум два алгоритма hash функций: sha1 класс DimensionAttributeValueSetStorage метод getHash и md5 класс RLedgerTurnoverParamHashKey метод getHash и традиционная паранойя не дает покоя с традиционными вопросами почему? и что лучше? ЗЫ Хэш функции ессно вещь замечательная и соблазнительная и хочется научится их готовить правильно Последний раз редактировалось axm2013; 24.11.2015 в 16:02. |
|
24.11.2015, 16:02 | #2 |
Участник
|
Может, потому что второе делала локализация, а первое - центр?
__________________
Ivanhoe as is.. |
|
24.11.2015, 16:06 | #3 |
Гость
|
И кого правильнее клеймить позором а кому честь и слава в веках? Индусов или локализаторов?
Ну и конечно SHА1 оно вроде как надежнее, но значит ли это что MD5 дает больше коллизий и реально не стоит даже думать о ней? Ведь люди зачем то заморачивались и явно не спроста. PS ну и навскидку может кто подскажет какую нибудь стандартную функцию упаковки строки или куда смотреть? Просто есть некие текстовые поля набор которых на вид хорошо бы представить одним полем и по идее обычную строчку с низкой энтропией можно упаковать без особых потерь. Последний раз редактировалось axm2013; 24.11.2015 в 17:15. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
25.11.2015, 09:47 | #4 |
Участник
|
Цитата:
Цитата:
На мой взгляд, использование MD5 в Аксапте более чем оправдано: ожидать коллизий на таких смешных для криптографической хеш-функции объемах данных (тысячи наборов финансовых аналитик, миллионы комбинаций складских аналитик) не стоит, а удобство использования типа GUID для хранения значений MD5 подчас бесценно. Это нарушение 1-й нормальной формы. Используйте числовые коды вместо строк с низкой энтропией, если хотите сэкономить и повысить производительность. |
|
|
За это сообщение автора поблагодарили: mazzy (2), macklakov (1), ZVV (1), Logger (3), AP-1055D (1). |
25.11.2015, 10:41 | #5 |
Гость
|
Цитата:
Цитата:
Второй тогда уж: но это не принципиально так как нормализация не является необходимым условием щастья. Нет мне нужно именно эквивалент хэш функции так как данные возможно будут перезаливать. Идеальная хэш функция была бы в самый раз. |
|
25.11.2015, 12:16 | #6 |
Участник
|
Цитата:
Цитата:
Не бывает идеальных хеш-функций, другое дело, что под ваши конкретные условия может за глаза хватить того или иного алгоритма. Посмотрите в сторону TextBuffer::strHashKey(), если почему-то считаете, что она вам не подходит, - возьмите ту же MD5. |
|
25.11.2015, 12:35 | #7 |
Гость
|
Цитата:
т.е. сделали свою вместо использования System.Security.Cryptography.SHA1 Дело в том что В теории да (для произвольного множества), на практике при определенных допущениях (например при фиксации размеров словаря) бывают. Цитата:
Это понятно, так в общем то и сделал +- но почему от нее отказались в одном из случаев в Dynamics Ax? Может они что то знали? Наверняка в MS тот кто делал SHA1 был в курсе про MD5 и прочее типа того что в системе реализовано. Но сделал так... Последний раз редактировалось axm2013; 25.11.2015 в 12:41. |
|
25.11.2015, 13:09 | #8 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: Kabardian (2). |
25.11.2015, 13:36 | #9 |
Участник
|
|
|
25.11.2015, 13:39 | #10 |
Участник
|
Цитата:
Я например недавно узнал, что оказывается генерация гуида может занимать существенное время в винде (до микро-миллисекунд), поэтому если идет интенсивная вставка в БД с обязательной генерацией гуида, то это может здорово просадить производительность по сравнению с использованием обычных целочисленных счетчиков. |
|
|
За это сообщение автора поблагодарили: (1). |
25.11.2015, 15:18 | #11 |
Участник
|
Цитата:
|
|
26.11.2015, 11:51 | #12 |
Гость
|
|
|
27.02.2016, 22:28 | #13 |
Участник
|
Цитата:
|
|
|
За это сообщение автора поблагодарили: Logger (3). |
29.02.2016, 09:38 | #14 |
Гость
|
|
|
29.02.2016, 09:43 | #15 |
Участник
|
Ну а как вы тестировали ?
Кстати, тестировать имеет смысл на небольшой длине ключа (порядка килобайта) - так как именно на такой длине вычисляется хеш для inventDim |
|
29.02.2016, 09:53 | #16 |
Модератор
|
|
|
29.02.2016, 10:03 | #17 |
Гость
|
Цитата:
А при чем тут InventDim? У меня другая задача в любом случае строки не мега длины де факто. Цитата:
Сообщение от George Nordic
Тогда лишитесь возможности поиска по данным полям.
1. взял значение полей 2. сгенерил хэш 3 осуществил поиск 4 вуаля |
|
29.02.2016, 10:09 | #18 |
Участник
|
Цитата:
А код как работал ? p-code ? CIL ? В первом случае могли сказаться накладные расходы на вызов IL функций. см. http://blogs.msdn.com/b/mfp/archive/...the-metal.aspx |
|
29.02.2016, 10:12 | #19 |
Участник
|
|
|
29.02.2016, 10:19 | #20 |
Гость
|
|
|
|
За это сообщение автора поблагодарили: Logger (0). |
Теги |
hash, md5, sha1, хэш |
|
|