js代码加密

加密思路

1、代码混淆
2、编译成二进制代码或者字节码执行
3、编译成通过第三方js解释引擎的opcode

代码混淆

基于代码的AST进行相应的转换和处理。
一般操作是移除空格换行符,字面量替换。

常用工具

UglifyJS
webpack-obfuscator

实践参考

vue项目配置 webpack-obfuscator 进行代码加密混淆

编译成二进制代码或者字节码执行

使用npm包bytenode

bytenode官网
electron 代码保护
保护 Node.js 项目的源代码

  • 注意点
    js字节码平台相关,且node版本相关。
    js字节码是js执行引擎v8的产物。

2、使用asm.js编译成wasm执行

wasm二进制文件并不安全,可以通过wasm2wast反编译成wast文件。
不过市场上的wasm2wast工具并不好用。也就是说并不能完全成功反编译成功。

只有asm.js语法写的文件才能转成 wasm
在 WebAssembly 中调用 Web API
向 wasm 中传递 js 变量
获取并使用从 js 传递的变量

编译成通过第三方js解释引擎的opcode

https://github.com/sablejs/sablejs

实践参考:
https://segmentfault.com/a/1190000008402872
https://www.assemblyscript.org/
https://www.wasm.com.cn/getting-started/advanced-tools/
https://jishuin.proginn.com/p/763bfbd591ee
https://www.wasm.com.cn/getting-started/advanced-tools/
https://juejin.cn/post/6844903813619384327#heading-3

你可能感兴趣的:(js代码加密)