AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.11.2015, 10:41   #1  
axm2013
Гость
 
n/a
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Думаю, люди как раз не заморачивались, а взяли то, что на слуху, - SHA1.
В том то и дело что заморачивались. Создали свою отдельно, не используя стандартные возможности от MS.

Цитата:
Сообщение от gl00mie Посмотреть сообщение
. Никто ведь не кричит о том, что uniqueidentifier в T-SQL, используемый в тысячах промышленных баз данных, на самом деле не такой уж unique.
Так как вероятность совпадения ... В то же время с хэш функциями не все так же просто.

Цитата:
Сообщение от gl00mie Посмотреть сообщение
Это нарушение 1-й нормальной формы.
.
Второй тогда уж: но это не принципиально так как нормализация не является необходимым условием щастья.

Цитата:
Сообщение от gl00mie Посмотреть сообщение
Используйте числовые коды вместо строк с низкой энтропией, если хотите сэкономить и повысить производительность.
Нет мне нужно именно эквивалент хэш функции так как данные возможно будут перезаливать. Идеальная хэш функция была бы в самый раз.
Старый 25.11.2015, 12:16   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от axm2013 Посмотреть сообщение
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Думаю, люди как раз не заморачивались, а взяли то, что на слуху, - SHA1.
В том то и дело что заморачивались. Создали свою отдельно, не используя стандартные возможности от MS.
Если вы думаете, что под AX 2012 кто-то озаботился разработкой нового алгоритма криптографической хеш-функции, то глубоко заблуждаетесь - погуглите, алгоритму SHA1 уже 20 лет Кроме того, к разработке алгоритма MD5 Microsoft также не имеет никакого отношения.
Цитата:
Сообщение от axm2013 Посмотреть сообщение
Так как вероятность совпадения ... В то же время с хэш функциями не все так же просто.
"Паранойя - профессиональное заболевание специалистов по безопасности, но любители могут в этой области зайти гораздо дальше" (с) Банки десятилетиями доверяли электронной подписи, использующей в т.ч. алгоритм MD5, миллиардные транзакции, а тут - вы со своими текстовыми полями...
Цитата:
Сообщение от axm2013 Посмотреть сообщение
Нет мне нужно именно эквивалент хэш функции так как данные возможно будут перезаливать. Идеальная хэш функция была бы в самый раз.
Не бывает идеальных хеш-функций, другое дело, что под ваши конкретные условия может за глаза хватить того или иного алгоритма. Посмотрите в сторону TextBuffer::strHashKey(), если почему-то считаете, что она вам не подходит, - возьмите ту же MD5.
Старый 25.11.2015, 12:35   #3  
axm2013
Гость
 
n/a
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Если вы думаете, что под AX 2012 кто-то озаботился разработкой нового алгоритма криптографической хеш-функции, то глубоко заблуждаетесь - погуглите, алгоритму SHA1 уже 20 лет
Я как бэ в курсе. Но реализация идет Microsoft.Dynamics.AX.Fim.Dimensions.Hash::ComputeSHA1Hash
т.е. сделали свою вместо использования
System.Security.Cryptography.SHA1

Цитата:
Сообщение от gl00mie Посмотреть сообщение
а тут - вы со своими текстовыми полями...
Дело в том что

Цитата:
Сообщение от gl00mie Посмотреть сообщение
Не бывает идеальных хеш-функций,
В теории да (для произвольного множества), на практике при определенных допущениях (например при фиксации размеров словаря) бывают.

Цитата:
Сообщение от gl00mie Посмотреть сообщение
TextBuffer::strHashKey(), если почему-то считаете, что она вам не подходит,
она не подходит по причине что не видел внятного описания что там. Играться с черным ящиком отвечая за последствия его работы страшно.

Цитата:
Сообщение от gl00mie Посмотреть сообщение
- возьмите ту же MD5.
Это понятно, так в общем то и сделал +- но почему от нее отказались в одном из случаев в Dynamics Ax?
Может они что то знали?
Наверняка в MS тот кто делал SHA1 был в курсе про MD5 и прочее типа того что в системе реализовано. Но сделал так...

Последний раз редактировалось axm2013; 25.11.2015 в 12:41.
Старый 25.11.2015, 13:09   #4  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от axm2013 Посмотреть сообщение
Я как бэ в курсе. Но реализация идет Microsoft.Dynamics.AX.Fim.Dimensions.Hash::ComputeSHA1Hash т.е. сделали свою вместо использования System.Security.Cryptography.SHA1
Это просто обертка для удобства вызова:
За это сообщение автора поблагодарили: Kabardian (2).
Старый 25.11.2015, 13:39   #5  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,971 / 3267 (116) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от axm2013 Посмотреть сообщение
Это понятно, так в общем то и сделал +- но почему от нее отказались в одном из случаев в Dynamics Ax?
Может они что то знали?
Наверняка в MS тот кто делал SHA1 был в курсе про MD5 и прочее типа того что в системе реализовано. Но сделал так...
Может быть эти функции по разному едят процессорное время ?

Я например недавно узнал, что оказывается генерация гуида может занимать существенное время в винде (до микро-миллисекунд), поэтому если идет интенсивная вставка в БД с обязательной генерацией гуида, то это может здорово просадить производительность по сравнению с использованием обычных целочисленных счетчиков.
За это сообщение автора поблагодарили:  (1).
Старый 26.11.2015, 11:51   #6  
axm2013
Гость
 
n/a
Цитата:
Сообщение от Logger Посмотреть сообщение
Может быть эти функции по разному едят процессорное время ?
Да видимо в этом дело имхо.
Тест показал что реализация с MD5 проигрывает SHA1 по скорости
Старый 27.02.2016, 22:28   #7  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от axm2013 Посмотреть сообщение
Да видимо в этом дело имхо. Тест показал что реализация с MD5 проигрывает SHA1 по скорости
В действительности все с точностью до наоборот В тестах Microsoft MD5 вычисляется примерно на 43% быстрее SHA1 на объемах данных от 1 Мб, а на меньших объемах данных - примерно одинаково быстро (но SHA1 отстает).
За это сообщение автора поблагодарили: Logger (3).
Старый 29.02.2016, 09:38   #8  
axm2013
Гость
 
n/a
Цитата:
Сообщение от gl00mie Посмотреть сообщение
В действительности все с точностью до наоборот...
Я смеюсь вам в лицо или что там у вас
добрым смехом веселой гиены

(стихи по мотивам)

Внезапно тесты:

SHA1 35
MD5 62

MD5 62
SHA1 39


Меня мало волнуют тесты от индусов MS, когда могу проверить и самостоятельно.
Старый 25.11.2015, 13:36   #9  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,971 / 3267 (116) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Посмотрите в сторону TextBuffer::strHashKey(), если почему-то считаете, что она вам не подходит, - возьмите ту же MD5.
Интересно, а что использует TextBuffer::strHashKey() ?
Легко может оказаться, что вариант еще какой-нить криптографической функции.
Старый 25.11.2015, 15:18   #10  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Logger Посмотреть сообщение
Интересно, а что использует TextBuffer::strHashKey() ? Легко может оказаться, что вариант еще какой-нить криптографической функции.
Я думаю, все проще, и там считается какой-нить CRC32.
Теги
hash, md5, sha1, хэш

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Неправильный тип аргумента функции преобразования S.Kuskov DAX: Программирование 3 07.02.2020 10:49
AX 2012 R2: ошибка в функции "Операции для аналитик" Kabardian DAX: Функционал 2 09.04.2014 23:56
Групповые функции в дизайнере Query Morpheus DAX: Программирование 3 28.01.2011 13:13
Advanced query range value expressions: поле таблицы - имя вcтроенной функции year(). ATimTim DAX: Программирование 12 27.03.2009 18:16
имя функции программно Alkozeltzer DAX: Программирование 2 25.07.2005 19:03

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:40.