|
|
|
Ряд уникальных значений.
|
|||
|---|---|---|---|
|
#18+
MD5 выдает 32 разрядную уникальную строку. Как сделать, что-то подобное, но на 8 разрядов? Например, используя цифры и регистрозависимые буквы. Может есть уже готовые функции, алгоритмы или решения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2010, 13:17:33 |
|
||
|
Ряд уникальных значений.
|
|||
|---|---|---|---|
|
#18+
Да, и хотелось бы чтобы также как в MD5 вычислять эту строку и она также "лавинообразно" изменялась при изменении одного символа во входном параметре. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2010, 13:28:58 |
|
||
|
Ряд уникальных значений.
|
|||
|---|---|---|---|
|
#18+
AIS, MD5 - это не генератор случайных чисел. MD5 подвержен коллизиям. У вас явно неправильно выбрано средство реализации под задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2010, 13:43:50 |
|
||
|
Ряд уникальных значений.
|
|||
|---|---|---|---|
|
#18+
an0nymAIS, MD5 - это не генератор случайных чисел. MD5 подвержен коллизиям. У вас явно неправильно выбрано средство реализации под задачу. В том то и дело, что мне не надо как в MD5 "миллионы-миллиардов" значений, в которых можно найти коллизии. Мне достаточно миллион, который будет формироваться на основе конкретного ряда значений (например, чисел от 0 до 1млн.), и который без труда можно будет в конце перед применением проверить на коллизии. Идея состоит в том, чтобы заменить id_строк в таблице БД, которые сейчас числа, на вот такой ряд уникальных идентификаторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2010, 14:17:24 |
|
||
|
Ряд уникальных значений.
|
|||
|---|---|---|---|
|
#18+
AIS, чем вам не подходит AI PK? Обеспечение гарантии отсутствия коллизий хотя бы на 1 млн. разных значений вам встанет достаточно дорого. Но 1 млн. закончится достаточно быстро. Был тут недавно вопрос от человека - ему якобы заказчик поставил задачу, чтобы добавление в базу шло не по порядку (AI PK), а рандомно. Зачем такие требования, четко человек объяснить так и не смог - по всей видимости для выборки не по порядку. Такая задача решается правильно иначе - отдельной колонкой, в которую триггером ли или составлением запроса на клиенте дописывается рандомное значение, при этом требование их уникальности даже соблюдать не придется (хотя вероятность коллизии будет очень мала), и PK останется атомарен. Сдается мне у вас нечто похожее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2010, 14:31:49 |
|
||
|
Ряд уникальных значений.
|
|||
|---|---|---|---|
|
#18+
AIS, 1. в 8 бит миллион не помещается. 2. читаем в википедии про хэш и связанные алгоритмы - может найдете подходящий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2010, 16:52:50 |
|
||
|
Ряд уникальных значений.
|
|||
|---|---|---|---|
|
#18+
AISИдея состоит в том, чтобы заменить id_строк в таблице БД, которые сейчас числа, на вот такой ряд уникальных идентификаторов. А может, стоит вначале огласить СУБД? Авось, уже что-нибудь встроенное в ней есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2010, 17:21:42 |
|
||
|
Ряд уникальных значений.
|
|||
|---|---|---|---|
|
#18+
AISИдея состоит в том, чтобы заменить id_строк в таблице БД, которые сейчас числа, на вот такой ряд уникальных идентификаторов. Проверьте у специалистов по используемой БД, что эту идею стоит реализовывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2010, 18:26:25 |
|
||
|
Ряд уникальных значений.
|
|||
|---|---|---|---|
|
#18+
Спасибо всем за такое живое участие. Постараюсь ответить сразу всем и повторюсь ещё раз про идею: Есть БД FireBird_embed в открытом виде. Коль её нельзя защитить штатными средствами (т.к. их нет), а внешние средства защиты платные либо не подходят, то есть идея воспользоваться методом "Обфускации", т.е. запутать на сколько это возможно БД, чтобы она работала только с одним моим ПО. На первом этапе есть желание в ключевых таблицах поменять РК, чтобы разорвать явную видимость отношений между таблицами. an0nym...Обеспечение гарантии отсутствия коллизий хотя бы на 1 млн. разных значений вам встанет достаточно дорого. Но 1 млн. закончится достаточно быстро. Есть таблица в которой id_pk числа от 1 до N, где планируется что N<1млн. Каждому значению id_pk будет соответствовать 8 символьная строка из цифр и регистрозависимых букв. В цикле прогнать id_pk и проверить наличие коллизий не составит труда. Siemargl1. в 8 бит миллион не помещается. 2. читаем в википедии про хэш и связанные алгоритмы - может найдете подходящий 1. в 8 разрядов (точнее символов в строке) поместится намного больше. Код: plaintext 1. 2. Читаю, ищу. :) softwarerПроверьте у специалистов по используемой БД, что эту идею стоит реализовывать. У специалистов взгляды на такого рода проблему координально расходятся с моими на предмет наличия штатной защиты у FB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2010, 23:51:23 |
|
||
|
Ряд уникальных значений.
|
|||
|---|---|---|---|
|
#18+
AIS, ИМХО, такая обфускация бессмысленна. Всё равно связи отследить будет достаточно легко. Если вы пытаетесь защитить БД с данными пользователя от воровства с компьютера пользователя - зашифруйте её. Если вы пытаетесь защитить свои данные в БД, которую вы полностью передаете на компьютер пользователю... ИМХО, миссия невыполнима. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2010, 00:23:22 |
|
||
|
Ряд уникальных значений.
|
|||
|---|---|---|---|
|
#18+
AIS , сам себя поправлю: имелось ввиду Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2010, 00:40:50 |
|
||
|
Ряд уникальных значений.
|
|||
|---|---|---|---|
|
#18+
an0nymAIS, ИМХО, такая обфускация бессмысленна. Всё равно связи отследить будет достаточно легко. Если вы пытаетесь защитить БД с данными пользователя от воровства с компьютера пользователя - зашифруйте её. Если вы пытаетесь защитить свои данные в БД, которую вы полностью передаете на компьютер пользователю... ИМХО, миссия невыполнима. Любое что затруднит несанкционированные действия с БД и отсечет какое-нибудь количество "взломщиков", уже имеет смысл. Как раз в этом, как я пониманию, и есть польза обфускации. Данные в БД действительно шифруються, но только ключевые, т.к. это влияет на производительность, а остальное хочется "запутать" и "логику понимания" этого запутанного разместить непосредственно в ПО. Есть уверенность, что "малой кровью" можно отсечь всех "любознательных", "интересующихся" и "жадных". :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2010, 01:07:21 |
|
||
|
Ряд уникальных значений.
|
|||
|---|---|---|---|
|
#18+
AIS, может быть лучше подумать над юридической чистотой всего этого. В конце-концов должна быть заявлена особенность данного ПО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2010, 01:31:51 |
|
||
|
Ряд уникальных значений.
|
|||
|---|---|---|---|
|
#18+
maytonAIS, может быть лучше подумать над юридической чистотой всего этого. Это Вы про что именно? maytonВ конце-концов должна быть заявлена особенность данного ПО. О-о, это сверх узкоспециализированное ПО+БД и ориентированна на такую же специфичную целевую аудиторию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2010, 03:00:45 |
|
||
|
Ряд уникальных значений.
|
|||
|---|---|---|---|
|
#18+
Ты занимаешся безнадёжным и неблагодарным делом ИМХО. По теме - если тебе надо однозначно преобразовывать primary keys, или прочие keys в шифрованные - используй любой блочный шифр. Размер блока можно выбрать минимальным или кратным макс. длине ключа. Но это всё равно мера временная. Если база очень ценна и интересна - твой код можно разобрать на атомы и понять что к чему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2010, 10:45:45 |
|
||
|
Ряд уникальных значений.
|
|||
|---|---|---|---|
|
#18+
Чёт совсем не понятно. Файрбёрд - серверная база. Ну, запаролить её и все дела. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2010, 10:53:27 |
|
||
|
Ряд уникальных значений.
|
|||
|---|---|---|---|
|
#18+
Идея за две копейки: -средние 4 байта - или сколько нужно - оригинальный ИД, или простая функция от него (XOR const) -остальные 4 - рандом И уникальность есть и фиг поймешь (до дизассемблера). С сортировкой по ид только фигово ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2010, 10:55:45 |
|
||
|
Ряд уникальных значений.
|
|||
|---|---|---|---|
|
#18+
maytonТы занимаешся безнадёжным и неблагодарным делом ИМХО. По теме - если тебе надо однозначно преобразовывать primary keys, или прочие keys в шифрованные - используй любой блочный шифр. Размер блока можно выбрать минимальным или кратным макс. длине ключа. Но это всё равно мера временная. Если база очень ценна и интересна - твой код можно разобрать на атомы и понять что к чему. По этому проекту всё парадоксально просто: очередь ведь не стоит и интересно это только узкому кругу специалистов, а они и не планируют взламывать либо тиражировать - это не их бизнес. А разобрать на детальки конечно могут, но специалист отдает предпочтение легальному продукту, т.к. верит PR-мероприятиям, что "только легальный продукт" может гарантировать достоверность данных, которые они потом используют в своих расчетах. Ошибка в расчетах - это не просто большие финансовые потери, но и зачастую потеря доверия и имиджа. Но защищаться всегда надо по возможности. Я в этом уверен. ShSergeЧёт совсем не понятно. Файрбёрд - серверная база. Ну, запаролить её и все дела. ПО+БД распространяется как настольная версия, а FB в открытом виде и пароли здесь не помогают. Для FB они помогут только, когда БД физически на сервере разработчика. :) SiemarglИдея за две копейки: -средние 4 байта - или сколько нужно - оригинальный ИД, или простая функция от него (XOR const) -остальные 4 - рандом И уникальность есть и фиг поймешь (до дизассемблера). С сортировкой по ид только фигово ) 1. Подобного рода подход быстро вскрывается даже визуально. 2. Просматривается последовательность РК и т.д. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2010, 12:44:36 |
|
||
|
Ряд уникальных значений.
|
|||
|---|---|---|---|
|
#18+
AISSiemarglИдея за две копейки: -средние 4 байта - или сколько нужно - оригинальный ИД, или простая функция от него (XOR const) -остальные 4 - рандом И уникальность есть и фиг поймешь (до дизассемблера). С сортировкой по ид только фигово ) 1. Подобного рода подход быстро вскрывается даже визуально. 2. Просматривается последовательность РК и т.д. Код: plaintext Ну не очень то элементарно вскрывается. Пример для id=1..20 и только цифровой кодировки для основной и подчиненной таблиц 012304369113788 367692184445514 == 1 048484368806912 280802184706422 390664368954574 414022184641134 301244369449394 189842184160252 070384369551380 514602184024832 331674369225591 593582184317130 615094369342894 052912184230014 355264368210244 121912185338231 168614368341206 414962185213604 102024368031095 467102185521379 239214368132106 268752185427052 039934368625579 106722184942375 159814368764165 182382184810516 176784368403644 642142185126305 231664368526532 197252185062166 336694370630342 193842182925036 444304370732929 186442182802993 600424370428198 067532183152356 014844370535610 376962183006558 598814371054711 443142182501030 == 20 Только как JOIN клеить, через UDF? А еще есть стеганография) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2010, 19:16:39 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=36467653&tid=1343885]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
188ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 519ms |

| 0 / 0 |
