Если пользователь должен ввести его, и код, который его читает, доступен для чтения злоумышленником (т. Е. На стороне клиента, а не на стороне сервера), для злоумышленника это только вопрос навыков / времени / терпения.Пользователь должен выяснить, какие ключи принимаются вашей программой.
Думайте об этом так.Компьютер тупая обезьяна с дубинкой.Вы даете обезьяну пароль.Обезьяна слышит ваш пароль, выполняет очень длинную последовательность глупых операций на листе бумаги, используя пароль, и когда он заканчивает, он достигает либо 0 (клубит вас), либо 1 (пропускает вас).
Так как он пишет это на листе бумаги, все, что вам нужно сделать, это посмотреть на листок бумаги и понять, что он пишет, и выяснить, что вы должны сделать, чтобы обезьяна не стукнула вас.Это может быть длительный и болезненный процесс, но в конечном итоге вы сможете это сделать.
С другой стороны, допустим, что обезьяна выполняет серию операций в своем уме.Теперь вам не на что смотреть, и вы безнадежно догадаетесь, что он делает.