与 Nginx HttpLuaModule 一起使用时 lua 源文件可以是 obfuscated/encrypted 吗?如果是那么如何?
Can lua source files be obfuscated/encrypted while using it with Nginx HttpLuaModule? If yes then how?
我正在使用 Lua 为我的后端服务创建自定义身份验证层。 Nginx 使用 Lua 模块和 LuaJIT 编译。它工作正常。我想对我在那些 lua 文件中返回的令牌进行一些加密,并希望没有人阅读纯文本源文件。能否将这些 lua 源文件编译成二进制文件或 obfuscated/encrypted 以便 Nginx 的 access_by_lua_file
指令仍然能够加载这些编译文件?我知道这不是一个完整的证明方法,但比纯文本更好。
Lua 字符串都存在于字节码中,即使没有调试信息。查看存储在代码中的字符串需要 没有任何动机 。
$ luajit -be 'print("hello world")' hello.out
$ luajit hello.out
hello world
$ xxd hello.out
0000000: 1b4c 4a01 0229 0200 0200 0200 0434 0000 .LJ..).......4..
0000010: 0025 0101 003e 0002 0147 0001 0010 6865 .%...>...G....he
0000020: 6c6c 6f20 776f 726c 640a 7072 696e 7400 llo world.print.
$ luajit -bl hello.out
-- BYTECODE -- hello.out:0-0
0001 GGET 0 0 ; "print"
0002 KSTR 1 1 ; "hello world"
0003 CALL 0 1 2
0004 RET0 0 1
如果您的计划是将加密令牌隐藏在字节码中,我建议首先设计一种可逆方法,使用存储在源代码纯文本中的混淆版本(例如,打乱字符、执行算术运算)在他们身上,等等...)
我正在使用 Lua 为我的后端服务创建自定义身份验证层。 Nginx 使用 Lua 模块和 LuaJIT 编译。它工作正常。我想对我在那些 lua 文件中返回的令牌进行一些加密,并希望没有人阅读纯文本源文件。能否将这些 lua 源文件编译成二进制文件或 obfuscated/encrypted 以便 Nginx 的 access_by_lua_file
指令仍然能够加载这些编译文件?我知道这不是一个完整的证明方法,但比纯文本更好。
Lua 字符串都存在于字节码中,即使没有调试信息。查看存储在代码中的字符串需要 没有任何动机 。
$ luajit -be 'print("hello world")' hello.out
$ luajit hello.out
hello world
$ xxd hello.out
0000000: 1b4c 4a01 0229 0200 0200 0200 0434 0000 .LJ..).......4..
0000010: 0025 0101 003e 0002 0147 0001 0010 6865 .%...>...G....he
0000020: 6c6c 6f20 776f 726c 640a 7072 696e 7400 llo world.print.
$ luajit -bl hello.out
-- BYTECODE -- hello.out:0-0
0001 GGET 0 0 ; "print"
0002 KSTR 1 1 ; "hello world"
0003 CALL 0 1 2
0004 RET0 0 1
如果您的计划是将加密令牌隐藏在字节码中,我建议首先设计一种可逆方法,使用存储在源代码纯文本中的混淆版本(例如,打乱字符、执行算术运算)在他们身上,等等...)