«Секретный» алгоритм должен быть в приложении… предоставлен всем.Это совсем не секрет.Безопасность от неизвестности в любом случае плоха, якобы вам не следует иметь секретных алгоритмов, потому что держать их в секрете безнадежно.В этом случае алгоритм тривиально раскрывается.
Также см. Закон Шнайера.:)
Редактировать:
Теоретически, это никогда не может быть безопасным, потому что любой алгоритм, который вы вставляете в приложение, должен запускаться на клиенте, и, следовательно, его можно анализировать и декомпилировать.Но можно утверждать, что это не должно быть теоретически безопасно, это нормально, если это «достаточно безопасно», то есть.риск достаточно низок, потому что, например, усилия, необходимые для получения алгоритма, слишком велики.
Но затем рассмотрим два возможных варианта:
Этодействительно классный API, для которого все хотят создать клиент, или есть хотя бы одна такая сторона.В этом случае не нужно слишком много усилий, и алгоритм будет «сломан», то есть будет декомпилирован и реализован в другом клиенте.
Людям все равноНесмотря на все это об этом API, для кого-то еще не очень важно создать клиент.В этом случае они, вероятно, не будут строить клиента в любом случае, и можно использовать гораздо более простые методы, чтобы другие клиенты не могли всплыть с разумным успехом.
Но, очевидно, это ваш выборподход, подобный тому, что вы описали, несколько повышает планку - просто не ожидайте, что он будет действительно безопасным, потому что он не будет.