首页 > 其他分享 >自创一种前端语言,能否替代js,以实现代码加密?

自创一种前端语言,能否替代js,以实现代码加密?

时间:2024-10-31 09:46:58浏览次数:7  
标签:加密 自创 livescript 代码 js 浏览器 执行

js加密,是前端很常见的需求。

常见的方法是用jshamanjsjiami.online等进行js代码混淆加密。

是否有其它的方案呢?比如:我们能否自己开发一种前端浏览器语言,取代js(将js代码,转化为自己独特的语言,从而让他人看不懂),以此实现变相的js代码加密。

以此思路,下面进行尝试和研究。

有一个符合这个想法的脚本,名为livescript,也可以在前端执行。

自创一种前端语言,能否替代js,以实现代码加密?_javascript

它的代码形式如下:

自创一种前端语言,能否替代js,以实现代码加密?_WebAssembly_02

执行输出:

自创一种前端语言,能否替代js,以实现代码加密?_js代码_03

这个小众的语言,语法与js是有不小差异的。如果大量的这种代码出现在前端,替代js,实现各种功能,貌似是具备了加密的效果。

例如,这陌生的语法,js程序员看着肯定是一脸懵:

自创一种前端语言,能否替代js,以实现代码加密?_js代码_04

而且,还有方法可以实现javascript与livescript语法转换:

自创一种前端语言,能否替代js,以实现代码加密?_javascript_05

目前为止,似乎是OK的:将js转化为livescript,然后再发布。

那么livescript这种语法在浏览器中是怎么被执行的呢?

经简单分析得知,livescript在浏览器中执行前,会进行编译

自创一种前端语言,能否替代js,以实现代码加密?_js代码_06

其中的output变量看起来有些可疑,在此加一句console.log,输出,看看它是什么:

自创一种前端语言,能否替代js,以实现代码加密?_javascript_07

执行:

自创一种前端语言,能否替代js,以实现代码加密?_js代码_08

果然如此,livescript编译是把它自定义的语法转化成了js代码(livescript代码被还原为了js代码)。

这就解释的通了,理论也就正确了:js当然是可以被浏览器执行的。

livescript脚本最终会被转化成js代码。所以,它与aaencode、jjencode、jsf∪ck等类似,可以视作一种编码

由于能被轻易还原为js代码,所以,并不具备很强的加密效果。如果想加密js代码,防止代码被分析、复制、盗用,还是远远不及js混淆加密工具的(jshaman、jsjiami.online等正统js混淆加密工具)。

或者有人会说,如果livescript代码它没有还原为js,而是直接执行,可能吗?

可能性比较小,这里可以联想到wasm(WebAssembly,非指汇编语言

)。如果想让代码直接被执行,而不是转成js代码,就需要有一个“执行器”,浏览器是只给js准备了执行器,livescript想直接执行,就得像wasm一样也开发自己的执行器,这是个巨的大工程了,还得兼容所有js语法、还得长期随js更新而更新(因为此处的场景要转js为livescript,这是本文讨论的应用点),综合考虑到这些,这个方案不太可行:自创一种前端语言,替代js,以实现代码加密不可行。无论是转为js执行,还是自己写执行器,都不可行。

标签:加密,自创,livescript,代码,js,浏览器,执行
From: https://blog.51cto.com/jsjiami/12413277

相关文章

  • 获取数据类型js
    functiongetFieldType(field){if(field===null){return'null';}switch(typeoffield){case'undefined':return'undefined';case'string':return&......
  • NodeJS实现咖啡点餐小程序-计算机毕业设计源码09149
     目 录摘要1绪论1.1研究背景1.2 研究意义1.3研究方法1.4论文结构与章节安排2系统分析2.1可行性分析2.2系统流程分析2.2.2 数据删除流程2.3 系统功能分析2.3.1功能性分析2.3.2非功能性分析2.4用例分析2.5本章小结3 系统总体设计3......
  • 华为OD机试 E卷|敏感字段加密
    华为OD机试E卷|敏感字段加密0、关于本专栏&刷题交流群本文收录于专栏【2024华为OD机试真题】,专栏共有上千道OD机试真题,包含详细解答思路、与四种代码实现(Python、Java、C++、JavaScript)。点击文末链接加入【华为OD机试交流群】,和群友一起刷题备考。刷的越多,考试中遇到原题的......
  • JS实现图片放大镜效果
    代码:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title>......
  • 568. 蜡笔小新动漫主题 大学生期末大作业 Web前端网页制作 html+css+js
    目录一、网页概述二、网页文件三、网页效果四、代码展示1.html2.CSS3.JS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐欢迎光临仙女的网页世界!这里有各行各业的Web前端网页制作的案例,样式齐全新颖,并持续更新!感谢CSDN,提供了这......
  • 本地开发nodejs服务走系统代理 `https-proxy-agent`
    本地开发nodejs服务走系统代理https-proxy-agent使用场景:前端开发中,后端API在工作电脑网络环境不能被直接访问,需要走公司内网代理,或上外网代理等系统代理服务;开发服务nodejs代理的浏览器请求,可能不会自动走系统代理,需要手动配置。constHttpsProxyAgent=require("https-pr......
  • Vue.js内置指令全解析:从基础到实践
    文章目录前言Vue.js内置指令详解v-textv-htmlv-showv-ifv-elsev-else-ifv-forv-onv-bindv-modulev-slotv-prev-oncev-memov-cloak结尾前言在Vue.js的世界里,指令是连接数据和视图的桥梁,它们为开发者提供了一种声明式的方法来处理常见的任务。本文将详细介绍Vue.js......
  • 【java应用】 Jmeter玩法:调用jar包实现AES加密
    原创方知本知从零做软件测试一、将开发提供的AESjava类打成jar包1.1打开开发提供的java类用Eclipse开发工具打开,观察包名。新建项目,在生成的src目录下新建包,名字为java类对应的包名,将java类拖到该包下面。1.2将该java类导出成jar包格式二、Jmeter调用jar包实现AES加......
  • CesiumJS 案例 P12:添加指定长宽的图片图层并居中显示(圆点分别为图片图层的中心点、左
    CesiumJSCesiumJSAPI:https://cesium.com/learn/cesiumjs/ref-doc/index.htmlCesiumJS是一个开源的JavaScript库,它用于在网页中创建和控制3D地球仪(地图)一、添加加指定长宽的图片图层并居中显示(原点为图片图层的中心点)<!DOCTYPEhtml><htmllang="en"> <head>......
  • 如何在Vue2项目中使用Mock.js
    引言 首先我们要了解为什么使用Mock.js,我们在前端开发项目期间,可能我们的后端提供接口的速度跟不上我们前端的开发速度,这时我们就需要用到Mock.js来模拟后端接口和数据Mock.js介绍 Mock.js是一个用于生成随机数据和拦截Ajax请求的JavaScript库。它非常适合在前端开发......