跨域解决方案js(nginx跨域解决方案)

跨域解决方案js(nginx跨域解决方案)p id 34Q23UST js 加密 是前端很常见的需求 p p id 34Q23USU 常见的方法是用 strong jshaman strong strong jsjiami online strong 等进行 js 代码混淆加密 lt p

大家好,我是讯享网,很高兴认识大家。




讯享网

 <p id="34Q23UST">js加密,是前端很常见的需求。</p><p id="34Q23USU">常见的方法是用<strong>jshaman</strong>、<strong>jsjiami.online</strong>等进行js代码混淆加密。</p><p id="34Q23USV"><strong>是否有其</strong><strong>它</strong><strong>的方案呢?</strong>比如:我们能否自己开发一种前端浏览器语言,取代js(将js代码,转化为自己独特的语言,从而让他人看不懂),以此实现变相的js代码加密。</p><p id="34Q23UT0">以此思路,下面进行尝试和研究。</p><p id="34Q23UT1">有一个符合这个想法的脚本,名为<strong>livescript</strong>,也可以在前端执行。</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1031%2Fac9b407aj00sm775m005kd000go009em.jpg&thumbnail=660x&quality=80&type=jpg"/><br/><br/></p><p id="34Q23UT3">它的代码形式如下:</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1031%2Fbcd5f076j00sm775m0031d000go009qm.jpg&thumbnail=660x&quality=80&type=jpg"/><br/><br/></p><p id="34Q23UT5">执行输出:</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1031%2F364c1ecbj00sm775l002zd000go008jm.jpg&thumbnail=660x&quality=80&type=jpg"/><br/><br/></p><p id="34Q23UT7">这个<strong>小众的语言</strong>,语法与js是有不小差异的。如果大量的这种代码出现在前端,替代js,实现各种功能,貌似是具备了加密的效果。</p><p id="34Q23UT8">例如,这陌生的语法,js程序员看着肯定是一脸懵:</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1031%2Faea66ffej00sm775m005vd000go00ckm.jpg&thumbnail=660x&quality=80&type=jpg"/><br/><br/></p><p id="34Q23UTA">而且,还有方法可以实现javascript与livescript语法转换:</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1031%2Fa62a8a15p00sm775l000sd000go002sm.png&thumbnail=660x&quality=80&type=jpg"/><br/><br/></p><p id="34Q23UTC">目前为止,似乎是OK的:<strong>将js转化为livescript</strong>,然后再发布。</p><p id="34Q23UTD">那么livescript这种语法在浏览器中是怎么被<strong>执行</strong>的呢?</p><p id="34Q23UTE">经简单分析得知,livescript在浏览器中执行前,会进行<strong>编译</strong>:</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1031%2Ff177e327j00sm775m005md000go00dsm.jpg&thumbnail=660x&quality=80&type=jpg"/><br/><br/></p><p id="34Q23UTG">其中的output变量看起来有些可疑,在此加一句<strong>console.log</strong>,输出,看看它是什么:</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1031%2F92226faaj00sm775l002ld000go005em.jpg&thumbnail=660x&quality=80&type=jpg"/><br/><br/></p><p id="34Q23UTI">执行:</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1031%2Fcbf50cd6j00sm775l005rd000go00a5m.jpg&thumbnail=660x&quality=80&type=jpg"/><br/><br/></p><p id="34Q23UTK">果然如此,livescript编译是把它自定义的语法转化成了js代码(<strong>livescript代码被还原为了js代码</strong>)。</p><p id="34Q23UTL">这就解释的通了,理论也就正确了:js当然是可以被浏览器执行的。</p><p id="34Q23UTM">livescript脚本最终会被转化成js代码。所以,它与aaencode、jjencode、jsf∪ck等类似,可以视作一种<strong>编码</strong>。</p><p id="34Q23UTN">由于能被轻易还原为js代码,所以,并不具备很强的加密效果。如果想加密js代码</p><p id="34Q23UTO">,防止代码被分析、复制、盗用,还是远远不及js混淆加密工具的(jshaman、jsjiami.online等正统js混淆加密工具)。</p><p id="34Q23UTP">或者有人会说,如果livescript代码它没有还原为js,而是直接执行,可能吗?</p><p id="34Q23UTQ">可能性比较小,这里可以联想到wasm(WebAssembly,非指汇编语言)。如果想让代码直接被执行,而不是转成js代码,就需要有一个“执行器”,浏览器是只给js准备了执行器,livescript想直接执行,就得像wasm一样也开发自己的执行器,这是个巨的大工程了,还得兼容所有js语法、还得长期随js更新而更新(因为此处的场景要转js为livescript,这是本文讨论的应用点),综合考虑到这些,这个方案不太可行:自创一种前端语言,替代js,以实现代码加密不可行。无论是转为js执行,还是自己写执行器,都不可行。</p> 

讯享网
小讯
上一篇 2025-05-30 20:17
下一篇 2025-04-19 20:52

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/177231.html