Мое лучшее предположение, что это будет какая-то система CAPTCHA или математическая головоломка.Но я думаю, что будет довольно сложно, если не невозможно, построить функцию, подчиняющуюся всем трем правилам.Если каждая цифра будет влиять на каждую другую цифру независимо, это будет составлять 10 ^ 2 зависимостей.
Ошибка, ладно, я все равно попробую.Как насчет этого:
Подготовьте 10 постоянных чисел c_0, c_1, .. , c_9
, каждое из которых имеет 10 цифр.Сделайте их попарно совместными или такими.Выберите ваш номер хеш-ввода a
случайным образом.Позвольте пользователю вычислить сумму цифр s
из a
.Последняя цифра i
из s
затем используется для выбора одной из этих констант c_i
.Результат хеширования b
равен a + c_i
.
Пример:
c_0 = 4729703658
c_1 = 5793154234
c_2 = 0362709821
...
a = 8243047067
s = 41
i = 1
b = a + c_1 = 14036201301
Изменить одну цифру:
a = 7243047067
s = 40
i = 0
b = a + c_0 = 11972750725
Должно быть очевидно, чтоэта система не подходит для любых криптографических приложений.Также это довольно легко сломать как CAPTCHA.Я даже не думаю, что в большинстве случаев повернуть вспять слишком сложно, даже для людей.Но это может быть началом.