openresty 應用打包並使用luajit編譯lua程式碼實現簡單加密
阿新 • • 發佈:2018-12-26
前面寫了很多篇介紹openresty開發的文章,你是否已經開發了一些小程式?
當開發完一些應用,是否想著怎麼打包?
出於某種原因,不想公開一些核心的模組原始碼?
針對上面兩點,有以下兩個辦法
- 寫個小指令碼來打包
- 嘗試使用luajit實現對lua程式碼加密處理
下面是程式碼
package.sh
#!/usr/bin/env bash
rm -rf ./out
mkdir -p out/app/logs
cp -rf conf out/app
cp -rf html out/app
cp -rf lua out/app
cp -rf lualib out/app
luajit=/usr/local/openresty/luajit/bin/luajit
function compile () {
for file in $1
do
if test -f $file
then
$luajit -b $file $file
fi
done
}
compile "./out/app/lua/api/*"
compile "./out/app/lua/util/*"
compile "./out/app/lua/web/*"
首先建立一個輸出資料夾,為了可重複,在建立之前先清空一下,然後把conf、html、lua、lualib目錄程式碼拷貝到輸出資料夾,接下來寫一個函式用來編譯相關資料夾的lua檔案,因為某些目錄不需要編譯,所以把需要編譯的目錄當成引數傳遞給compile函式,並且覆蓋原來的檔案,反正都是在輸出目錄裡面操作,不會影響原始碼
效果如下:
這是我加密後的微信模組,打包完之後會看到lua程式碼已經看不懂了,沒法修改了,但是一些字串還是可以看得出來的,jit不會影響lua程式碼執行。
吼吼吼~