powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Встроенные хеш функции
11 сообщений из 11, страница 1 из 1
Встроенные хеш функции
    #33367332
nbn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nbn
Гость
Подскажите пожалуйста, есть ли в информиксе встроенные хэш функции (типа md5) которые можно использовать в sql запросах?
...
Рейтинг: 0 / 0
Встроенные хеш функции
    #33367755
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет
В таком вот аксепте
...
Рейтинг: 0 / 0
Встроенные хеш функции
    #33368780
Ilya Kulagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВыбегаллоНет

Но положение можно исправить. В частности, когда мне понадобился crypt для авторизации веб-пользователей, я его без особого труда сотворил. Обсуждение похожей задачи было вот тут:

/topic/204849
...
Рейтинг: 0 / 0
Встроенные хеш функции
    #33369046
nbn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nbn
Гость
Проблема в том что доступ в базу есть только на чтение (ничего создавать нельзя) поэтому хэш хотелось делать средствами исключительно SQL. Тщательное изучение IBM SQL Reference показало что встроенного действительно ничего нет, пришлось сделать руками. Вдруг кому пригодится:

Хеш функция четырех аргументов f(a,b,c,d) = ((29*a+b)*29+c)*29+d

Не md5 конечно ... но прокатит
...
Рейтинг: 0 / 0
Встроенные хеш функции
    #33369100
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nbnПроблема в том что доступ в базу есть только на чтение (ничего создавать нельзя) поэтому хэш хотелось делать средствами исключительно SQL. Тщательное изучение IBM SQL Reference показало что встроенного действительно ничего нет, пришлось сделать руками. Вдруг кому пригодится:

Хеш функция четырех аргументов f(a,b,c,d) = ((29*a+b)*29+c)*29+d

Не md5 конечно ... но прокатит
А зачем вообще это нужно? Особенно при условии что писать ничего нельзя.
...
Рейтинг: 0 / 0
Встроенные хеш функции
    #33369260
nbn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nbn
Гость
Возникла такая необходимость при решении задачи интеграции с системой, которая хранит данные используя СУБД информикс. К этой системе доступ есть только на чтение (такова политика безопасности организации заказчика) - то бишь разрешено только исполнение SQL запросов для получения необходимых данных. Гениальный разработчик системы использовал в качестве первичного ключа всех объектов четыре! поля в которых хранятся 5-6 значные числа. Просто слепить 4 поля чтобы получить 20 значный первичный ключ не хотелось - как вариант использование встроенного механизма хеширования, которого в информиксе к сожалению не оказалось.
...
Рейтинг: 0 / 0
Встроенные хеш функции
    #33369314
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nbnВозникла такая необходимость при решении задачи интеграции с системой, которая хранит данные используя СУБД информикс. К этой системе доступ есть только на чтение (такова политика безопасности организации заказчика) - то бишь разрешено только исполнение SQL запросов для получения необходимых данных. Гениальный разработчик системы использовал в качестве первичного ключа всех объектов четыре! поля в которых хранятся 5-6 значные числа. Просто слепить 4 поля чтобы получить 20 значный первичный ключ не хотелось - как вариант использование встроенного механизма хеширования, которого в информиксе к сожалению не оказалось.
Возможно я молодой и глупый, но у меня есть заднее чувство что md5 не гарантирует разного хеш для разных аргументов, он вполне может совпасть, аналогично ваша функция.
...
Рейтинг: 0 / 0
Встроенные хеш функции
    #33369543
nbn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nbn
Гость
В теории совпадение возможно. Но не на подобных данных (последовательности с шагом 1). Если бы данные имели большой разброс - то тут риск конечно бы был (это касается моей функции). Что касается md5 то тут вероятность совпадения еще меньше, только если входные данные сильно больше того что получается на выходе md5 (128 бит). Хотя с другой стороны первичный ключ - не то место где можно допускать хотябы минимальный риск совпадения - поэтому конкатенация самый надежный способ.
...
Рейтинг: 0 / 0
Встроенные хеш функции
    #33369610
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nbnВ теории совпадение возможно. Но не на подобных данных (последовательности с шагом 1). Если бы данные имели большой разброс - то тут риск конечно бы был (это касается моей функции). Что касается md5 то тут вероятность совпадения еще меньше, только если входные данные сильно больше того что получается на выходе md5 (128 бит). Хотя с другой стороны первичный ключ - не то место где можно допускать хотябы минимальный риск совпадения - поэтому конкатенация самый надежный способ.
Вольному конечно воля, но чем неидеальные 12 байт или 16 байт лучше чем идеальные 24 мне не понятно. Ну я бы еще понял если бы была попытка уложиться в 8 байт. Умножение, а не деление на простое малоразрядное число 29 тоже ясности не вносит.
...
Рейтинг: 0 / 0
Встроенные хеш функции
    #33369884
idev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nbnВ теории совпадение возможно. Но не на подобных данных (последовательности с шагом 1). Если бы данные имели большой разброс - то тут риск конечно бы был (это касается моей функции). Что касается md5 то тут вероятность совпадения еще меньше, только если входные данные сильно больше того что получается на выходе md5 (128 бит). Хотя с другой стороны первичный ключ - не то место где можно допускать хотябы минимальный риск совпадения - поэтому конкатенация самый надежный способ.

На первый взгляд как раз ваша функция
f(a,b,c,d) = ((29*a+b)*29+c)*29+d
кажется очень удачной для повторения результатов, на данных которые последовательно инкрементятся.

Собственно берем любые (а, b, c, d) - они дают значение функции f
Это же значение функции будет и для (a, b, c - 1, d + 29) и так далее :)
...
Рейтинг: 0 / 0
Встроенные хеш функции
    #33371175
nbn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nbn
Гость
Вообщем признаю идея была не совсем правильная. И хотя результат получился нормальным (не совпали ни разу значения преобразованных полей, пробовал на всех записях в БД) рисковать я не стал и в результате конкатенации 4 полей получил 23 значный ключ.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Встроенные хеш функции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]