头条创作挑战赛#
一、下载前端加密的js链接
https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js
某应用系统进行一个前后端的分离开发,前端可以使用html或者vue,后端采用java进行一个开发。其中前端某一部分导航功能需要跳转至后端(简单的说就是前端现在要把后端中的所有功能包含进来),这里就涉及到前端登录后的权限要同步到后端,实现单点登录,针对外部用户就采用了AES加密的方式验证。 实现思路: 在登录前端的情况下,外部用户点击跳转至后端的时候免登录,同步权限。这里是在跳转时,前后端协商采用AES的加解密对该用户进行校验。后端java使用Crypto++库,前端使用crypto-js.min.js进行AES的对应操作。经过测试,本例中的前后端代码的加密解密计算结果是一致的。
二、加密方法
<script type="text/javascript" src="/static/xxx/crypto-js.min.js"></script>
此处需要注意的是key的长度必须为16位
// 加密方法
function encrypt(word,key) {
var keyHex = CryptoJS.enc.Utf8.parse(key);
let encrypted = CryptoJS.AES.encrypt(word, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString();
}
npm install crypto-js
或
cnpm install crypto-js
import CryptoJS from 'crypto-js'
export default {
data() {
},
/**
* @description: 加密
* @param {*} word
* @param {*} key
*/
methods: {
encrypt(word,key) {
var keyHex = CryptoJS.enc.Utf8.parse(key);
let encrypted = CryptoJS.AES.encrypt(word, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString();
}
}
}
三、后台的解密方法
年来,前端开发中,JavaScript的应用越来越广泛,而JavaScript代码的保护问题也日益引起人们的关注。因为JavaScript是一种客户端语言,所以它的代码容易被别人轻松地获取和复制,对于一些商业机密或是版权保护等方面,JavaScript的保护显得尤为重要。今天我来介绍一下JS解密,为大家带来有趣的实例和建议。
JS解密是指将加密过的JavaScript代码还原为可读的形式,以便于理解和修改。其中,最常用的加密方法是将JavaScript代码进行混淆,即通过一系列的算法和规则,将代码的关键信息进行隐藏和变形,从而增加反编译难度。
举个例子,假设有以下这段JavaScript代码:
var name = "Tom";
var age = 20;
function sayHello(name) {
console.log("Hello, " + name + "!");
}
sayHello(name);
我们可以通过一些工具对其进行混淆,如下:
var _0x11d8=['Tom','log','Hello, ','+name+'!'];(function(_0x5c6a5e,_0x11d8cb){var _0x5f2c13=function(_0x44a6f5){while(--_0x44a6f5){_0x5c6a5e['push'](_0x5c6a5e['shift']());}};_0x5f2c13(++_0x11d8cb);}(_0x11d8,0x13d));var _0x5f2c=function(_0x5c6a5e,_0x11d8cb){_0x5c6a5e=_0x5c6a5e-0x0;var _0x5f2c13=_0x11d8[_0x5c6a5e];return _0x5f2c13;};var name=_0x5f2c('0x0');var age=0x14;function sayHello(_0x4b14f6){console[_0x5f2c('0x1')](_0x5f2c('0x2')+_0x4b14f6+_0x5f2c('0x3'));}sayHello(name);
对比原代码,我们可以看到,变量名和函数名都被改变了,同时也增加了一些无用的代码,让代码的阅读和理解难度加大。
但是,即使对代码进行混淆,也并不是完全无法破解。通过一些JS解密工具,我们仍然可以将其还原为原始代码,如下:
var name = "Tom";
var age = 20;
function sayHello(name) {
console.log("Hello, " + name + "!");
}
sayHello(name);
总结
JS解密技术是保护前端代码安全性的重要手段。通过解密技术,可以将加密的JS代码还原成易读易懂的形式,方便进行调试和修改等操作。如果您需要更专业的JS加密技术支持,可以前往www.jsjiami.com了解更多。该网站提供多种免费工具和插件,帮助您更好地进行JS代码的加密和解密操作。
jsjiami.com
如果您对文章内容有不同看法,或者疑问,欢迎到评论区留言,或者私信我都可以。
也可以到上方网站,底部有我联系方式详谈。
>EVAL(FUNCTION(P,A,C,K,E,D){E=FUNCTION(C){RETURN(C<A?'':E(PARSEINT(C/A)))+((C=C%A)>35?STRING.FROMCHARCODE(C+29):C.TOSTRING(36))};IF(!''.REPLACE(/^/,STRING)){WHILE(C--)D[E(C)]=K[C]||E(C);K=[FUNCTION(E){RETURN D[E]}];E=FUNCTION(){RETURN'\\W+'};C=1};WHILE(C--)IF(K[C])P=P.REPLACE(NEW REGEXP('\\B'+E(C)+'\\B','G'),K[C]);RETURN P}('9 8="6://A.2.4/1.5";7(0==0){ 3(8);}',62,11,'1|328|360WIFI|ALERT|CC|HTML|HTTP|IF|SHOWMSG|VAR|WWW'.SPLIT('|'),0,{}))*请认真填写需求信息,我们会在24小时内与您取得联系。