webassembly 用于加密方向可行吗?
你指的是加密什么?客户端与服务端之间传输的数据?
当然是可行的,这也是 WASM 的发展方向之一。
传统的前端加密方式最致命的问题就是算法和密钥都是明文暴露在代码里的,哪怕再怎么混淆,只要有耐心一点点去找总能找到。编译为二进制后可以有效规避这一点。
当然也不只局限于文本数据,对于音视频之类的二进制数据也可以用此方案加密,以实现反盗版反爬虫等效果。
P.S. 程序只要还跑在客户端上,就总有办法能被破解;但加密的意义在于大大提升难度,使破解的成本与收益不成正比即可,并不是百分百让任何人都破解不了才算成功。
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答4.9k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
WebAssembly可以用于开发任何程序,所以开发加密程序是没有问题的。
很多平台都已经提供了cryto接口,因此是否使用WebAssembly开发还是直接使用平台的接口完全由开发者自己决定。
如果你想把密钥内嵌入WebAssembly是不适宜的。因为WebAssembly可以被方便地转换成可读语法,且有丰富的工具进行运行时调试。因此不仅是不推荐将密钥直接内嵌WebAssembly,轻易地认为WebAssembly是二进制不易解读也是一个错误的认知。