Строка 10 цифр -> код 15 цифр - чтобы перебором нельзя раск
От: paradok  
Дата: 21.06.22 09:59
Оценка:
Приветствую!

Есть наборы объектов с полями на клиенте и сервере
-> название объекта
-> код 10 цифр
-> код 10 цифр (N штук)
..
-> код 15 цифр
-> код 15 цифр (M штук)
..

Объекты хранятся на клиенте и сервере как частично (на 90%) пересекающиеся множества.

если бы наборы были полностью идентичны, синхронны, то N=M
и каждому коду 10 цифр есть однозначное соответствие кода 15 цифр.

Но наборы не синхронны.

Коды 10 цифр присваиваются при создании объектов на клиенте, они всегда есть, их кол-во от 1 до N, они разные.
(при инициализации на клиенте кодов 15 цифр нет)

Коды 10 и 15 цифр присваиваются при создании объектов на сервере, они всегда есть, их кол-во попарно равны.

Клиент Коды 15 цифр получают по сети передав в открытом виде Название объекта на сервер
Коды 10 цифр по сети не передаются

На сервере, это известно, код 15 цифр получают каким-то (неизвестным) преобразованием или шифрованием из 10 цифр кода
и возможно + имении объекта

Клиент, передав на сервер код 15 цифр -> затем сервер однозначно устанавливает Название объекта и соответствующий парный код 10 цифр
и производит запуск каких-то процедур. Каких — клиент не важно.

Задача:
На клиенте, как проверить наличие пары код 15 и код 10 цифр данного объекта на сервере не запрашивая сервер?
Предварительно получив от сервера код 15 цифр, но без указания для какого кода 10 цифр это пара?


Было предложено в добавок к 15 цифр коду чтобы с сервера один раз передавался еще и CRC для каждого кода 10 цифр
или что-то подобное необратимое из известных публичных открытых алгоритмов,
тогда на клиенте по коду 10 цифр (он есть на клиенте изначально, дается при создании объекта на клиенте)
вычисляем crc и сравниваем с crc от сервера.

Однако ввиду коротких последовательностей код 10 цифр и 15 цифр возможно на клиенте перебором получить все пары код 10 — код 15 цифр.
И посторонний клиент сможет сразу по коду 15 цифр получать и код 10 цифр, чего никак не должно быть

тогда было предложено усовершенствование на оценку 3-
Взять такой СКС чтобы он давал множество коллизий. кажем 1000-10000 на наборе 10 цифр,
тогда подбор будет давать множественные ошибочные пары код10 — код15 и ущерб вероятно может быть снижен до приемлем уровня..

Понимаю, что все это криво, но все же посоветуйте что-нибудь правильное!
(заново систему спроектировать нельзя)
Отредактировано 21.06.2022 10:02 paradok . Предыдущая версия . Еще …
Отредактировано 21.06.2022 10:00 paradok . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.