powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / функция hash
25 сообщений из 79, страница 1 из 4
функция hash
    #39161724
Viktor_bs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой алгоритм используется в встроенной функции hash?

Решил при миграции на 3-ку максимально вычистить самописные UDF и вот что получилось
Код: plsql
1.
2.
select hash('АРЛЕТ'), hash('БАЛЕТ')
from RDB$DATABASE


Код: plaintext
1.
HASH	HASH1
13490210	13490210
...
Рейтинг: 0 / 0
функция hash
    #39161739
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor_bsРешил при миграции на 3-ку
Это неправильные пчёлы! Совсем неправильные! И они, наверное, делают неправильный мёд!

HASHHASH114 970 874 536 61014 974 901 068 450
...
Рейтинг: 0 / 0
функция hash
    #39161750
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor_bsКакой алгоритм используется в встроенной функции hash?
ELF
...
Рейтинг: 0 / 0
функция hash
    #39161755
Viktor_bs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanViktor_bsРешил при миграции на 3-ку
Это неправильные пчёлы! Совсем неправильные! И они, наверное, делают неправильный мёд!

HASHHASH114 970 874 536 61014 974 901 068 450
Проверил на V2.5.5.26916


...
Рейтинг: 0 / 0
функция hash
    #39161760
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor_bsПроверил на V2.5.5.26916
И на 2.5.х результат как у меня выше.
...
Рейтинг: 0 / 0
функция hash
    #39161762
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanViktor_bsПроверил на V2.5.5.26916
И на 2.5.х результат как у меня выше.
Видимо, у меня руки кривые. :(
...
Рейтинг: 0 / 0
функция hash
    #39161766
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor_bs,

Ну можно конечно и другой хэш получить. Например так:
Код: sql
1.
  select hash(cast('БАЛЕТ' as char(255))) from rdb$database


но ты прав - хэши одинаковые для АРЛЕТ/БАЛЕТ.
...
Рейтинг: 0 / 0
функция hash
    #39161768
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterно ты прав - хэши одинаковые для АРЛЕТ/БАЛЕТ.
То есть у меня действительно руки не оттуда?
...
Рейтинг: 0 / 0
функция hash
    #39161777
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Ну у меня появилось несколько минут свободных, я и сделал это:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
execute block
returns (x varchar(255))
as
begin
  x='АРЛЕТ';
  x=hash(x);
  suspend;
  x='БАЛЕТ';
  x=hash(x);
  suspend;
end


и это:

Код: sql
1.
2.
3.
select hash(cast('АРЛЕТ' as varchar(255))),1 from rdb$database
union
select hash(cast('БАЛЕТ' as varchar(255))),2 from rdb$database
...
Рейтинг: 0 / 0
функция hash
    #39161781
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanDarkMasterно ты прав - хэши одинаковые для АРЛЕТ/БАЛЕТ.
То есть у меня действительно руки не оттуда?

У тебя там случайно какой-нить UDF не затесалось?
...
Рейтинг: 0 / 0
функция hash
    #39161782
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Darkmaster!
You wrote on 3 февраля 2016 г. 12:00:02:

Darkmaster> но ты прав - хэши одинаковые для АРЛЕТ/БАЛЕТ.нет.
select hash('БАЛЕТ'),
hash('АРЛЕТ')
from rdb$database

14 974 901 068 450 14 970 874 536 610

V2.5.1.26351 (64-битный, на win7 x64)
ods 11.2
dialect 3

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
функция hash
    #39161789
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterНу у меня появилось несколько минут свободных, я и сделал это:
У меня - секунд :)
DarkMaster
Код: sql
1.
2.
3.
select hash(cast('АРЛЕТ' as varchar(255))),1 from rdb$database
union
select hash(cast('БАЛЕТ' as varchar(255))),2 from rdb$database


F_1CONSTANT149708745366101149749010684502
И еще:
Код: sql
1.
select cast(hash('АРЛЕТ') as varchar(255)), cast(hash('БАЛЕТ') as varchar(255)) from RDB$DATABASE


CASTCAST11497087453661014974901068450
...
Рейтинг: 0 / 0
функция hash
    #39161792
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterwadmanпропущено...

То есть у меня действительно руки не оттуда?

У тебя там случайно какой-нить UDF не затесалось?
Четыре FB и все одно и тоже возвращают. Нет udf для хэша.
...
Рейтинг: 0 / 0
функция hash
    #39161793
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

Извини, не соглашусь - тот же запрос на FB 2.5.4.26856 (Win, ODS 11.2, WIN1251) мне отдает то же, что и у ТС.
...
Рейтинг: 0 / 0
функция hash
    #39161796
Viktor_bs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня FB x86, а Windows x64
...
Рейтинг: 0 / 0
функция hash
    #39161798
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor_bsУ меня FB x86, а Windows x64
И такое есть. Еще варианты?
...
Рейтинг: 0 / 0
функция hash
    #39161816
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Ха. Ларчик открывался просто ;)

У меня данные в Win1251 лежат и хэши получаю одинаковые. Если данные в UNICODE_FSS - то да хэши разные, и да - те же самые, что приводил ты и Мимопроходящий. Так что где-то так.
...
Рейтинг: 0 / 0
функция hash
    #39161818
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МимопроходящийHello, Darkmaster!
You wrote on 3 февраля 2016 г. 12:00:02:

Darkmaster> но ты прав - хэши одинаковые для АРЛЕТ/БАЛЕТ.нет.
select hash('БАЛЕТ'),
hash('АРЛЕТ')
from rdb$database

14 974 901 068 450 14 970 874 536 610

V2.5.1.26351 (64-битный, на win7 x64)
ods 11.2
dialect 3


Не воспроизводится:
V2.5.1.26351 (64-битный, на win7 x64)
ods 11.2
dialect 3

Код: sql
1.
2.
3.
select hash('БАЛЕТ'),
       hash('АРЛЕТ')
from rdb$database


13490210 13490210

Не смешно уже.
...
Рейтинг: 0 / 0
функция hash
    #39161821
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не спорьте, ничего удивительного в коллизиях нет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
функция hash
    #39161827
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если чарсет коннекта поставить UTF8, то хеши разные :)
...
Рейтинг: 0 / 0
функция hash
    #39161835
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Функция-то побайтово работает, а не посимвольно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
функция hash
    #39161844
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нужно 2 функции:
- character_hash, и приводить параметр к utf8
- binary_hash
...
Рейтинг: 0 / 0
функция hash
    #39161847
Viktor_bs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамНе спорьте, ничего удивительного в коллизиях нет.

При этом самописная UDF c кастрированной до 8 байт sha1 таким не болеет лет 15. Т.е. ни одной коллизии за все время, иначе бы пользователи убили из-за невозможности внести записи справочники (защита от дублей)
...
Рейтинг: 0 / 0
функция hash
    #39161874
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так это другой алгоритм, как и MD5 и пр., со своими коллизиями.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
функция hash
    #39161910
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor_bsТ.е. ни одной коллизии за все время, иначе бы пользователи убили из-за невозможности внести записи справочники (защита от дублей)
Если у вас на хеш навешен уник, поздравляю, "Шарик, ты балбес!" (ц)
...
Рейтинг: 0 / 0
25 сообщений из 79, страница 1 из 4
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / функция hash
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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