@yoyaye

Нужна функцию, похожую на хэш, до 32 бит, с возможность задавать первичное число?

Ищу 2 функции. Смысл задачи в том что надо иметь 2 функции:
1. Для создания номер нужна функция f([номер билета],[первое число]) = [первое число][числовая последовательност],
т.е. результат должен начинаться с того числа что мы указали.
например есть серия билетов A, Номер билета будет f(A90414, 0) = результат функци должен быть 0ADEA0.
2. Для проверки если взять f(0ADEA0) то должны получить A90414.

0ADEA0 - закрыт внутри защищенной области что надо стереть монеткой(для лотереи).

Крипкостойкость не нужна, коллизии возможны, размерность от 32 до 128 бит.

примеры:
A(A34243, 0) = 0a0Fd0 -> проверка B(0a0Fd0) = A34243;
A(C34303, A) = Aeecd0 -> проверка B(Aeecd0) = C34303;
  • Вопрос задан
  • 339 просмотров
Решения вопроса 1
SagePtr
@SagePtr
Еда - это святое
Как вариант, использовать RSA. Криптостойкость на маленьких числах не обеспечивается, но она ведь не нужна по условию задачи.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
alsopub
@alsopub
2) Не совсем так, если вы допускаете коллизии, то функция не имеет обратного преобразования и вы не можете из 0ADEA0 получить A90414, вы можете только из A90414 получить 0ADEA0.

Хэш размером 32 бита - возможно подойдет CRC32.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы