Моя идея вычислить хэш SHA из секретных данных и сравнить его с уже сохраненными хешами
Я бы предположил, что криптографический хеш - лучший вариант, если у вас нет другого уникального идентификатора.
(поскольку хеш подразумевает уникальность ввода данных)
И это неверное предположение.Независимо от того, криптографические хеши разработаны так, чтобы иметь ничтожную вероятность столкновения (вероятность того, что два входа имеют одинаковое значение хеш-функции), в основном все еще существует некоторая (очень малая) вероятность.
Для контролируемых (форматированных) входов я бы сказал,вероятность столкновения настолько мала, что вы можете смело использовать хеши в качестве уникальных идентификаторов, но подготовиться к тому, чтобы обрабатывать очень редко случай, когда происходит столкновение (возможно, вы можете опубликовать его и стать известным)
вычислитьХэш SHA из секретных данных
Относительно безопасности - очень сложно (= невозможно) вычислить входное значение на основе его хеша (предполагая, что криптографический хеш в настоящее время считается безопасным)
Осторожноразмера пространства - если вы говорите 1000 известных значений, проверять, какое секретное значение имеет определенный хэш, является тривиальным.Предполагая, что вы храните пары ключей, все должно быть в порядке