В настоящее время нет никакого способа сделать цифровой сейф.
Что вы МОЖЕТЕ сделать, так это затруднить ситуацию, когда это сложно сделать, но я признаю, что я не знаю конкретных способов достижения этой цели. Объем безопасности вашей программы на самом деле не является функцией защиты программ, а от психологии.
Да, психология.
Учитывая тот факт, что это гонка вооружений между крекеры и анти-крекеры, где оба непрерывно пытаются навредить друг другу, единственное, что можно сделать, это попытаться сделать это как можно более расстраивающим. Как мы это достигаем?
Будучи болью в тылу!
Каждый дополнительный шаг, который вы предпринимаете, чтобы убедиться, что ваш код трудно расшифровать, является хорошим.
Например, вы могли бы превратить свою программу в один скомпилированный блок байт-кода, который вы вызываете из своей программы. Используйте внешнюю библиотеку, чтобы зашифровать ее заранее и впоследствии расшифровать. Сделайте то же самое с дополнительными шагами для кодовых блоков функций. Или, функции в предварительно скомпилированных блоков готовы, но сломаны. Во время выполнения, используя byteplay, отредактируйте байт-код с байтами в зависимости от других байтов различных функций, который затем остановит вашу программу от работы при изменении.
Есть много способов возиться с головами людей, и, хотя я не могу сказать вам какие-либо конкретные способы для python, если вы думаете в контексте «Как быть сукой», вы найдете самые странные способы сделать это беспорядок для работы с вашим кодом.
Как ни странно, это намного проще в сборке, чем на python, поэтому, возможно, вам стоит изучить исполняемый код с помощью ctypes или что-то еще.
Призыв вашего внутреннего тролля!
У каждого замка на компьютере есть отверстие где-то, так зачем беспокоиться о том, чтобы реализовать вещь безопасности, которая будет дорогостоящей и в конечном итоге сломана позже. – user2740652
Что именно вы пытаетесь достичь? – fuz
И если вы хотите добиться какой-то обфускации, я рекомендую вам использовать язык программирования, который не должен знать имена символов во время выполнения (что делает Python). – fuz