Megjelent egy no-code eszköz, amely lehetővé teszi a kód elrejtését Python szkriptekben. Az átkonvertált szkript a kódolóban egyetlen sorban úgy néz ki, mint „# coding: no”, tartalom nélkül, de továbbra is fut és betölti a régi funkciókat. Az eszköz a No Code vicces filozófiája inspirálta, amely szerint a legjobb módja a biztonságos és megbízható alkalmazások írásának a kód teljes hiánya. Megjegyzik, hogy ez a filozófia jó, de néha szükséges, hogy a program végrehajtson bizonyos műveleteket. A no-code megoldja ezt a problémát, és lehetővé teszi a „kód nélküli” programok elterjesztését, miközben azok funkciókat hajtanak végre.
A kód elrejtésének módszere a tartalom kódolásán alapul, két Unicode karakter segítségével, amelyek nulla hosszúságúak (a 0x200B és 0x200C karakterek, amelyek nem okoznak behúzást). Az egyik láthatatlan karakter a „0”-t, a másik a „1”-et jelöli. $ cat some_code.py print("Helló, világ!") $ no_code some_code.py > no_code.py $ cat no_code.py # coding: no $ python no_code.py Helló, világ! $ yes_code no_code.py > some_code.py $ cat some_code.py print("Helló, világ!")
A szkriptben található „# coding: no” sor a fájlban a „no” nevű kódolás használatára utal — a „coding:” kulcsszó a Pythonban a forráskód kódolásának megadására szolgál. Az átkonvertált szkript futtatásához szükséges a „no_code” Python csomag telepítése, amely tartalmazza a „no.pth” fájlt, amely a „no” néven definiált kódolás használatakor van hívva a dekódolás előtt a parser feldolgozása előtt. A teljes fájl elrejtése helyett különböző kódblokk részek elrejtésére a projekt no_code.nothing() és no_code.something() funkciókat biztosít.
Hasonló projektek között említhető a Perl Acme::Bleach modulja, amely a kódot szóközök és tabulátorok reprezentációjává alakítja, valamint a JavaScript könyvtár, az INVISIBLE.js, amely lehetővé teszi a kód elrejtését nulla hosszúságú karakterekbe való kódolás révén.
Forrás: opennet.ru
