Публикуван е инструментарий no-code, който позволява да се скрива код в скриптове на езика Python. Преобразуваният скрипт изглежда в редакторите на код като един ред «# coding: no» без никакво друго съдържание, но въпреки това продължава да се изпълнява и да извършва предишните функции. Инструментарият е създаден под впечатление от шеговитата философия No Code, според която най-добрият начин за писане на безопасни и надеждни приложения е изцяло да се избегне код. Отбелязва се, че тази философия е добра, но понякога е необходимо програмата да извършва определени действия. No-code решава този проблем и позволява разпространението на програми «без код», но извършващи действия.
Методът за скриване е основан на кодирането на съдържанието с помощта на два Unicode-символа, които имат нулева дължина (не водещи до отстъп пробели 0x200B и 0x200C). Един невидим символ се асоциира с «0», а вторият с «1». $ cat some_code.py print(«Hello, world!») $ no_code some_code.py > no_code.py $ cat no_code.py # coding: no $ python no_code.py Hello, world! $ yes_code no_code.py > some_code.py $ cat some_code.py print(«Hello, world!»)
Строката «# coding: no» в скрипта със скрит код указва, че във файла се използва кодировка с име «no» — ключовото слово «coding:» се използва в Python за задаване на кодировката на изходния код. За изпълнението на преобразувания скрипт е необходимо инсталирането на Python-пакета «no_code», който включва файл «no.pth», извикван при използването на кодировка с име «no» за декодиране преди обработка от парсера. За скриване не на целия файл, а на отделни порции с код, проектът предоставя функциите no_code.nothing() и no_code.something().
От подобни проекти може да се отбележи Perl-модулът Acme::Bleach, който преобразува код в представяне от пробели и табулации, както и JavaScript-библиотеката INVISIBLE.js, която позволява скриването на код чрез кодиране в символи с нулева дължина.
Източник: opennet.ru
