Сейчас на форуме: Kybyx (+3 невидимых) |
eXeL@B —› Оффтоп —› Какой CRC-16 наиболее устойчивый для 13 символов от 0 до 9? |
Посл.ответ | Сообщение |
|
Создано: 08 февраля 2014 20:20 · Личное сообщение · #1 Возникла потребность сгенерировать устойчивый к изменениям 18-ти символьный код состоящий только из цифр от 0 до 9, где первые 13 символов полезная информация и 5 в конце - 16 битный CRC преобразованный в int. Пример: 012345678912330374 Далее в этом коде 6 раз меняю число в рандомной позиции на рандомный символ от 0 до 9 и поверяю соответствие CRC и первой части. Таким образом код (включая CRC) меняется не более чем на треть. Я пробовал несколько реализаций CRC-16 алгоритмов найденных в инете и один самописный на основе чётности и нечётности. Количество ложных срабатываний на 6 миллионов проверок отличается в разы, а лучший результат это примерно 70-90. Вопрос в том, возможно ли значительно уменьшить это количество и какой 16-битный алгоритм подсчёта контрольной суммы может подойти лучше для этого случая? |
|
Создано: 08 февраля 2014 21:02 · Личное сообщение · #2 Как вариант-можешь попробовать взять относительно стойкий хеш, типа МД5 и поксорить ворды друг с другом-и будет тебе 16-битный. Другой вопрос, что это отображение множества 10^13 -> 10^5, что даёт 10^8 одинаковых прообразов хешей. Так что я бы не ждал вероятность под 99%. Если получил 90-это уже неплохо. Надо точно больше-расширяй хеш. |
|
Создано: 10 февраля 2014 20:57 · Личное сообщение · #3 |
|
Создано: 11 февраля 2014 18:04 · Личное сообщение · #4 |
|
Создано: 11 февраля 2014 22:08 · Личное сообщение · #5 |
eXeL@B —› Оффтоп —› Какой CRC-16 наиболее устойчивый для 13 символов от 0 до 9? |