Уникальные коды с защитой

  1. 11 г. назад

    дамы и господа, у кого есть наработки алгоритма генерации сабжа (с проверкой корректности кода по алгоритму, а не по БД)
    нужно для оформления тонны дисконтных карт.

    первая мысль была такая:
    генерим GUID, далее вычисляем CRC16, и внедряем CRC16 в наш гуид (в виде двух доп.символов)

  2. для тех, кто в танке:

    wiki:Контрольное_число
    wiki:Циклический_избыточный_код#CRC-16

  3. аналог контрольного символа EAN13 не подойдет?

    Ответы: (3)
  4. (2) чё-то CRC мне больше нравится

    Ответы: (4)
  5. (3) по большому счету ограничение распространяется на устройство, на котором будет считаться код проверки. Для ЕАН13 выбран алгоритм с несложными арифметическими действиями, потому что его проще реализовать на сканерах штрихкода. Если ты проверяешь на компе - можно и посложней.

    Ответы: (5)
  6. (4) коды будут генерится и проверяться на компах.

    генериться - в системе 1С, а проверяться - на веб-сервере на пхп

    Ответы: (6)
  7. (5) тогда насколько хватит твоей фантазии:)

  8. в продолжение темы:

    согласно спецификации http://www.ietf.org/rfc/rfc4122.txt

    UUID = time-low "-" time-mid "-"
    time-high-and-version "-"
    clock-seq-and-reserved
    clock-seq-low "-" node
    time-low = 4hexOctet
    time-mid = 2hexOctet
    time-high-and-version = 2hexOctet
    clock-seq-and-reserved = hexOctet
    clock-seq-low = hexOctet
    node = 6hexOctet

    а теперь внимание, вопрос:

    если допустить, что генерироваться UUID'ы будут только на одном хосте, с некоторыми временными промежутками, достаточно ли будет брать только первые 8 байт (16 символов hex-представления) UUID для обеспечения псевдо-уникальности кодов? я так понял, что да, но может у кого-то другое мнение?

  9. для обеспечения псевдо-уникальности подойдет и обычный int autoincrement :)

    Ответы: (10)
  10. вообще задача какая стоит? выгрузка из 1с на сайт чего именно?

    если ссылочных типов - у них уже есть уникальный гуид. Я например им пользуюсь без каких либо сложностей

    Ответы: (11)
  11. (8) не, это будет слишком очевидно. нужно, чтобы коды были ещё и псевдо-случайными :)

  12. (9) да я, собственно, уже сделал.

    идея такая - в 1сине есть генератор псевдо-уникальных псевдо-случайных кодов с защитой, котоыре потом будут рассылаться клиентосам.

    в дальнейшем клиентос сможет этот код использовать в качестве инвайта для регистрации на веб-портале.
    собственно, при регистрации на веб-портале проверяется защита.

    затеяно было для того, чтобы не вести длинную и нудную БД (которую ещё и синхронизировать нужно будет между порталом и 1синой) всех сгенерировнных кодов для их проверки

или зарегистрируйтесь чтобы ответить!