js逆向基础必备知识一

时间:2024-02-25 14:30:28
1.1基础 三元运算 v1 = 条件?值A:值B; 条件成立v1为值A,条件不成立v1为值B res = 1 ===1?99:88; 三个等于号表示是否完全相等,==则不然,若1=="1"会报正确 console.log(res); console.log相等于执行,里面放变量相当于print 结果为99 赋值和比较 v1 = 11 ===(n=123) 先把123赋值给n,再判断l1与n是否相等,最后把false赋值给v1 console.log(n); 123 console.log(v1); false 逻辑运算 ||表示或,&&表示且 v2 = 9||14 v2值为多少,取决于9||14哪一个决定了为false或true,因为9为true,所以后面为啥都没关系,v2 就等于9 v3 = 0||15 0为false,整体结果取决于后面的值,v3值为15 v4 = 0||15||"杨鑫" 0||15先弄,整体取决于15,相当于15||"杨鑫",v4结果为15 逻辑运算优先级比三元运算高 1.2函数 function sign(v1){ //this console.log(v1); } 定义函数,sign为函数名 sign(123); 执行函数,函数内部this=window sign.call(123,456) 执行结果会把从第二个开始的值赋值进去,结果为456 function sign(v1,v2){ console.log(v1,v2); } sign.call(123,456,888)执行结果为456,888,函数内部this=123 若函数需要两个参数值,而只传入一个参数,则后面的值默认undefined 若函数没有定义参数,也可以传入参数值,会在arguments中记录 function x1(){ console.log(arguments); } x1(123,234,456,6778); 1.3其他 v1 = {k1:123} v2 = {k2:99,k3:888} Object.assign(v1,v2) console.log(v1); 将v2填充到v1,结果为{k1:123,k2:99,k3:888} 2.js对象 let obj = { "name":"杨鑫" }; let 声明变量 console.log(obj.name); 函数定义方法一: function Person(name,age){ console.log(this); this.name = name; this.age = age; } let p = new Person("zs",18); console.log(p.name); console.log(p.age);访问对象 console.log(p["name"]);访问对象 函数定义方法二: let add = new Function('a','b','return a+b'); res = add(1,5); console.log(res); 函数立即执行一: let res = function add(a,b){ console.log("函数执行了") return a+b; }(1,2); 定义和赋值放在一起 console.log(res); 函数立即执行二: !和~表示函数立即执行 !function addd(a,b){ console.log("函数执行了") return a+b; }(1,2); 函数立即执行三: 整体上套一个括号 (function adddd(a,b){ console.log("函数执行了") return a+b; }(1,2)); 3.字符串编解码 3.1unicode字符串 https://www.bejson.com/convert/unicode_chinese/ '我是猪' unicode为:\u6211\u662f\u732a 3.2bs64编码 btoa("i love you china"); 将字符串转换为bs64编码 atob("aSBsb3ZlIHlvdSBjaGluYQ==");将bs64编码转换为字符串 在浏览器中有这样的方法 再node中用Buffer方法 let buffer = Buffer.from("i love you china"); let base64Str = buffer.toString("base64"); console,log(base64Str);转换为bs64编码 let str = Buffer.from("密文","base64").toString(); console.log(str); 解码 4.常见加密算法 4.1base64编码: 工具:https://www.sojson.com/base64.html '我是猪' bs64结果:5oiR5piv54yqCiA= 4.2md5算法: 工具:https://www.sojson.com/encrypt_md5.html '我是猪' md5结果(32位小写):13166076ba99caf9e9e33e0c2ff76464 4.3对称加密算法AES&DES 可逆的,只要知道密钥 工具:https://www.sojson.com/encrypt_aes.html '我是猪':AES结果: 4.4非对称加密算法RSA 工具: