#julia
Вопрос:
Может ли код Julia быть защищен таким образом, чтобы конечные пользователи не могли его прочитать? Я рассматриваю это как альтернативу Python, которую, как я знаю, трудно защитить.
Я ищу язык, который можно использовать для создания настольных приложений конечных пользователей, который хорош с точки зрения статистики / математических приложений, и Джулия кажется идеальной для этого.
Ответ №1:
Для такого сценария вам понадобятся две отдельные вещи:
- скомпилируйте свой код в исполняемый файл и отправьте скомпилированный код
- «запутать» код так, чтобы его было трудно перепроектировать
Честно говоря, я не думаю, что Джулия является наиболее подходящим языком для этой задачи в настоящее время:
(1) возможно с помощью пакета PackageCompiler.jl. Однако это не мейнстрим, не ожидайте щелчка и решения вашей проблемы. Для (2) Я не знаю программных средств, которые запутывают исходный код Julia, хотя вы все еще можете «решить» написать довольно криптографический код спагетти в Julia, если хотите!
Комментарии:
1. Интересно, спасибо, есть ли другой фреймворк / язык, более подходящий для этого, на ваш взгляд?
2. В C и C# (и, возможно, Java) есть инструменты для запутывания кода, если это то, что вам действительно нужно…
Ответ №2:
Вы, конечно, могли бы зашифровать файл, содержащий часть вашего кода, а затем прочитать файл, расшифровать, Мета.проанализировать () и оценить() этот код в памяти, в стиле честной игры. Это удержало бы любого от простого просмотра из любопытства с редактором. Но любой, у кого есть разумная решимость и некоторое время, мог бы понять ваш метод и расшифровать ваш код. Зачем беспокоиться?
Комментарии:
1. Вы говорите «зачем беспокоиться» конкретно о Джулии, есть ли другой фреймворк / язык, более подходящий для этого, или вы просто имеете в виду в целом, что все доступные фреймворки от C# до Xojo одинаково уязвимы?
2. До тех пор, пока сам код должен иметь доступ к фактическому паролю, я думаю, что любой метод такого типа потенциально уязвим.
3. @Билл в основном подход к шифрованию-это потерянные усилия по определению. Код необходимо будет запустить в какой-то момент, и для его запуска требуется, чтобы AST находился в расшифрованном состоянии. Следовательно, как бы вы ни старались, все эти усилия будут напрасны.