标准方案依赖于 length + "#" + string。这很容易被逆向。
sbox 利用 constexpr AES-128 分组密码将字符串变异为高熵噪声。
在 Neetcode 的 "Encode and Decode Strings" 挑战中,我将自己混淆项目 Obfusk8 中的 AES 引擎移植了过来。
该实现首次提交即以 7ms 通过。加密安全性不应以性能为代价。
strings.exe(或 Linux 下的 strings)将返回零结果。查看 EXAMPLES 文件夹了解实现细节:
多字符串示例(sbox_test.cpp):
演示如何通过 _OBF(str) 宏处理 vector<string>,适用于批量处理。适合传输就绪型混淆。
单字符串示例(sbox_test1.cpp):
演示如何使用 ObfStr(str) 宏进行原子化物化。最适合单个变量赋值:
string s = ObfStr("ama obfuscation addicted");
7ms 运行时。 证明过度设计也可以是最优解。
作者: x86byte