WebAssembly编译前端加密算法

时间:2021-6-12 作者:qvyue

小马正在支持一个H5小游戏的后端编写,对于前端加密这块使用WebAssembly的初步理解和整理。

WebAssembly能做什么?

将后端语言如C/C++编译成.wasm二进制文件,JS加载后可跑在web前端。

嵌入式:或者将wasm嵌入到其他语言,其他语言就可以使用wasm内的函数方法,对于C和RUST等语言的使用者是个福音。

所谓优点:

比JS性能好,编译后的源码安全性,后端逻辑跑在前端减少服务端负担。

(场景1:如果前端有做开发一款游戏,数据需要加密上报,加密算法显然不能暴露,所以可以编译成二进制文件来处理加密算法后传输加密后的数据。这样前端加密才有意义!!)

WebAssembly支持不断发展。目前,以下语言支持它:

C / C ++-通过EmScripten或其他基于LLVM的最小工具链提供了很好的支持(可用于生产环境)

Rust-WebAssembly是受官方支持的目标,周围有非常活跃的社区。

Go-现在已将WebAssembly作为正式但实验性的目标来支持

C#-通过Blazor具有实验支持,但是当前需要将.NET运行时嵌入Wasm。最近发布了预览版,Blazor被Microsoft正式用作实验技术。

D-D的“ betterC”子集可以通过LDC(LLVM编译器)编译为WebAssembly。

TypeScript-通过AssemblyScript,实验性强,但势头强劲。  插播一下:  关于TS的通俗易懂。 ts编译成JS(这个JS代码非完全可读性)。

WebAssembly编译前端加密算法
WebAssembly编译前端加密算法

Java-通过TeaVM或Bytecoder

Haxe-刚刚宣布支持

Kotlin-Kotlin / Native 0.4通过WebAssembly和TeaVM获得了实验支持

Python-Pyodide是WebAssembly的Python移植,其中包括科学Python堆栈的核心软件包(Numpy,Pandas,matplotlib)。

PHP-实验性的,但具有有效的原型

Perl-WebPerl是Perl二进制文件到WebAssembly的端口,允许您在Web上运行Perl脚本。

Scala-使用Emscripten编译器

Ruby-通过run.rb项目

Swift-使用SwiftWasm,目前正在开发中

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。