当前位置: 首页 > news >正文

爬虫逆向--Day22Day23--核心实战案例【四川农机购置与补贴信息】【Webpack国密SM3、SM4】

案例地址链接:http://202.61.89.161:12021/subsidyOpen

案例爬取链接:http://202.61.89.161:12021/api/api/loginSidePageEDE/getPurchaseOfAgriculturalMachinery

一、方式一:Webpack

1.1、入口定位

首先当我们开始编写爬虫操作的时候,我们先确定目标链接,然后复制url到【https://curlconverter.com/】生成基础的爬虫代码,复制链接生成基础爬虫代码  有个时间的限制,刚生成的基础爬虫代码是可以拿到数据的,但是当时间过期后,就拿不到数据了。

然后在观察目标的url那些是加密,方便我们后续进行解密操作

image

 经过观察,响应--需要解密,请求---需要加密,请求头--需要加密

所以我们习惯性的先破解----响应解密

在之前的学习中,我们定位入口有很多种方式,比如:方法关键字【decrypt   encrypt  】、key关键字、headers关键字、路径关键字、interceptors 拦截器关键字、请求堆栈、地址关键字等等。

因为习惯性的有相应解密,我们优先进行做响应解密,所以我们通过搜索decrypt(,进行搜索定位

因为是做解密所以首先想到的是decrypt(,搜索结果是6个,不管是不是先把断点打上  确定解密的入口

image

1.2、代码分析

做解密就是做解密,先不要管加密

image

 通过查看代码得知,u(e)就是解密函数,o是不是一个固定值不知道,我们可以通过多次切换页码确定每次卡在该处时,得到的o是不是一样的,如果是一样的那么o就是一个固定值,经过确定o是一个固定值

o = "30062AFC48C0E7B5B0918851C0445A37"

所以把这个u函数直接拷贝到本地去执行

1.3、扣JS

所以把这个u(e) 函数直接拷贝到本地去执行

看到这里就会联想到,可以使用webpack和sm4两种方式可以进行操作

在l= 这个地方加和上面加都一样,然后去找加载器函数n     在l= 这里加,刷新页面  让卡在此处

image

1.4、补充依赖【】

当我们把u() 函数扣走以后,在断点处,打上断点,获取测试数据

image

image

image

image

image

 __webpack_require__  其实就是模板中的n

moduleId  其实就是 r

installedModules 其实就是t

就是格式还是webpack的格式就是编写变得负责了,所以我们看到是加载器函数,直接吧整个文件拷贝走

image

 直接吧加载器函数全部拷贝走【Ctrl+A   Ctrl+C】 然后进行下面的操作

1、在本地创建一个loader.js文件,【Ctrl+v】存放刚才拷贝的代码

2、添加全局window  和打印的log日志  

  添加全局window , 使用;  或者! 进行分割   代码:window = global; 

  添加日志log

image

 代码处理如下:

执行一下是缺少一个window   写一下window放在最上面   window = global   给下面的自执行函数,做一个分割,加一个;或者加一个!

看完匿名函数,下面有属性赋值,就可以在这里添加全局写入  window.loader = __webpack_require__

image

 运行代码,只要不报错,证明加载器函数处理完成。

image

 然后在最初的JS文件中,进行引用该加载器函数,并且调用,不出意外就会报某个模块找不到

【然后运行,就会报:模块找不到,这个时候就全局搜索webpack中的模块】

image

image

从window的这个属性中去拿数据,所以我们需要全局搜索这个8060这个模块,最好是加一个:   搜索8060:

找到以后直接拷贝,放到mod01中

image

image

 以上就完成了响应解密的数据,下面我们就需要进行请求加密了

往上看,请求加密就在上面,打上断点,刷新一下页面就是这里   不会无缘无故的在一起的

做响应解密的时候,其实跟加密距离,离的很近

直接把encrypt这个d方法直接拷贝走

l 已经有了

image

image

以上是把响应解密和请求加密都处理完了,下面就需要处理请求头中的三个参数了 Sign  Source  Timestamp

当我们把加密和解密都替换完成以后,如果不处理headers中的三个参数,是依然不能直接获取到数据

或者,重新生成一个基础爬虫代码,这个时候正常是可以拿到加密的响应数据的,然后在挨个把headers中的三个字段注释掉,看看这三个字段是不是必填项,

我们也可以通过key关键字,优先搜索Source    \bsource\b  打开 正则中的边界 

可以判断source这三个字段都在一起,其他都没在一起,所以其他都不是

image

方式一:通过扣JS代码,补充环境以来进行获取请求头中的三个字段

image

所以正常既然p()是获取这三个请求头的函数,那么就把p()函数直接扣走,缺什么补什么

image

 报h找不到,我们就把上面的h扣走

image

报a找不到, 网上找发现a和webpack有关系,所以可以拿过来直接用   var a = n("53ca")

image

 又报r找不到,往上找r函数直接扣走

image

 报s找不到,往上找发现也是和webpack有关系,因为本地有了webpack环境,所以直接扣走  var s = n("8060").sm3;

image

方式二:通过上层调用的,获悉得到还是webpack,直接通过已经存在的webpack直接得到即可

image

image

image

require("./05 mod02")    // 引入模块文件   引入文件执行文件,即可完成

image

1.5、代码文件

1.5.1、Python文件:01 butie.py

import requests
import execjs
import jsonjs_compile = execjs.compile(open("02 butie.js", encoding="utf-8").read())headers = {'Accept': 'application/json, text/plain, */*','Accept-Language': 'zh-CN,zh;q=0.9','Connection': 'keep-alive','Content-Type': 'application/json;charset=UTF-8','Origin': 'http://202.61.89.161:12021','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36','sign': 'd221aad291969e853e13fbaf26e6ba371b0707c41e2471fc62de03a90087ce550e657201a92abf9be4c3e13545c9197ac7028d07d049e38dc84c74dec54c12e5ba532c7c82c95484140e5a9ffbe7ae48','source': 'ZRCSL7V0JIRK1PHY','timestamp': 'b3ce7631c4857f64e7004b47932e9692','urlprefix': '',
}# 把断点定位l.encrypt(e, o);  获取e的值,作为查询参数
# 这个data是Python中的字典,可以理解为是查询参数  有关键作用的就是pageNum  pageSize和我们的批量获取数据有关系
data = {"applyType": 1,"year": 2025,"buyerName": "","code": "","areaCode": "","status": "","distributor": "","enterpriseId": "","factoryNumber": "","machineCode": "","purchaseDateStart": "","purchaseDateEnd": "","pageNum": 3,"pageSize": 15}# (1) 生成parameter   加密的时候传进去的需要是一个json字符串  所以需要把python中的字典转化成为json字符串
parameter = js_compile.call("d", json.dumps(data))data = {"parameter": parameter
}# (2) 生成header值  传进入的需要是一个parameter对象
ret = js_compile.call("get_sign", data)
print("ret:::", ret)
# ret 中的键值对是否在headers 中存在,如果存在就更新一下对应的value 如果没有就把ret中的键值对全部插进去
headers.update(ret)json_data = {'parameter': '41a69732cb266f361a31837c0916648bb8291635c087e530d1a25683d1160ee6265dcefe370b55d7e6ac9aca916fd2136f93e8f4248b1bda1f084d3d281ef4c558c2386e83cbef7944b0cd502dac9fd4ded0caf3a0cb7f2a9dd1907d1e576b5d33b825d1dcfce86ad6f94db52e8f3603d3bd888641a2889ea2fdc6b66ce28a36fd06b8dab3ce2b23a291932e42192719ce2c68f7dff16888924b7c383b33663c74c74a194438fc847eed16c0e16a3667954f332d0418d865537f467f329fe9a1bb98f9d3d4bcb55c384304a8a62bba72f7e663f5b8c725b71304213cab17de23',
}
url = 'http://202.61.89.161:12021/api/api/loginSidePageEDE/getPurchaseOfAgriculturalMachinery'response = requests.post(url=url, headers=headers, json=data, verify=False, )
print(response.text)# (3) 响应解密
data = js_compile.call("u", response.json().get("data"))
print(data)

1.5.2、JS文件:02 butie.js

require("./03 loader")   // 引入加载器函数
require("./04 mod01")    // 引入模块文件
require("./05 mod02")    // 引入模块文件
n = window.loader        // 给加载器赋值
var l = n("8060").sm4;   // 调用加载器的某个模块function u(e) {var t = l.decrypt(e, "30062AFC48C0E7B5B0918851C0445A37");return t
}// 响应解密测试
//data_1 = 'd7eb7831e3a2a0868562b28f00307c657a150b09f17ee85620d60d445cd76af0348b9106b859d78a0f7a887f86041ad12042dc18a313a7c2361133bb8274b83b185c8037c624ff6394c4695721a83a296e0d675689bc7ea15301c13a1486428dc8ab52f3ed95998fc72d44a0b0eb6ba016656c78f317f52383dd5a257181bdbf14c9ca472055e3ea5d1306ec1f6f5d80c254a073474f33cdfbf48c651b025070d6f715acd9135785410f616dfb0ea74346b028b2aa6c742e67d1f7eb3828f8675d57c83097ae68553e9317faba910898c34ee079a8a87e0216130c7713721f80d0e9b21942d9328d846aeec24f30d9cf71f430577119a904dfdb5c8de4f23780a74f4476356c0ccf74eeb72ee35e35455ed27bf99d052a0dc46d259b507fb25168048d32ffd8305a60d204dd1c67f95a37939f08801d0ab44d24542fa4e7a6e3a51952013a24904ba54fc9750adbd99942a49cffc967d401c81843c7e99b973953fb1cf90214b9c084927432428d5638a73b13ed0aea451f55c88d074f3c89a9d6308c509889e745cec13e20acb6a7b78ca6d4d581a43f5fc1af0fe14ba167ce0e6e47a2ff44a1e1b53c52b9686b7e27501aa51fdb0b4ba464dc2a379e3859f227f84fa346b5a937da8f25fceec28b7080c57ef7bf775c621f4c73d11c07f065eeffcce4dc1f760062f056b1397872a4691355fb3e27c4db8b1981ed57a628653915789d80990d5eb5089549c4f9d2f82c760bfcc5084a65cf29d731e7e0815445b7f1847c24120fbb3bf3783e127343a809185b64d19e9cb7ddba53e46dfcb494a48881d78a441715e217726e68a92ff87bc53737f9968de5d0caca931c6c2dc4db94be82f182eade97707b2f3237ef9f29c2f6fc2d766b09e98de82f1f37e73c5b15bfc2183bd6f7a45238b27993c27bc8d3329c9691d7bdbfdb7ddd3f4a6996a3c17cdc635af9dd149833039f0171af4101d1de894d33fa604ddf303cdd553d9467de941ece044d9202479acd9a5e78c563654c89444232c2b1e2567ca860db1fb0cb7fe881b8addcf8e75980cc4ba229712290f629b661d34b3bf00ee7325ba784493a94b70fe591749dcbbfb5bfac88afd193d245ec0de97838816883c53bbece4305c71221aec60ee83a34ed28d6f715acd9135785410f616dfb0ea743d41d71261d9cb97bbff9171c5d13190b7bb19c9dd4228e2ebd521f8de660fff8fea2c9b198e7e7c8c0b1355ec2d21bb299a63ca89ab093eca160afb7b401a41da1ee34fca31e52c8705b268956aee314d3dece72f93b1f34daaac95bc9d3d4383f14649eeb87fd1c2b05fead609c002bcfa00f5d8cbb9900a069f3a24aa56d6dfc7bfe19e71175b810d5def35d9a714580b6647a0f0656108d708038ac9a8eb211ee17015d994f20342a6f30aff90ed60934526e00a5e2c308d1bc5f51dc4ab360eca94d35e08c90e3b6e9912425360e7d0b735da3ed071e19aa87babfb6720c0272ea483b5cdb0284ec9f9a69d5bbfb0a6b52c6bbc0e3e09b22db0744d677bae716788da3abbf09de81d5d95c02da277a7ef11247db15222e8b05f59f509ec407b3765d78b558ba5374c6b584fb40e425d4b7992805f5ee6fbd0cf481f34ef2e674e08e3355a4ad939afab23dab24188fada5776de38ab1beeab78285a19a4cc296f7b0bddc409d8e3b50d5616dc95347c797e59bf5fc8f0d7f4d778ee9b49191a8c9e6c2413db8837f548d44b9d81d37e6f03da2450358c9f6a69e37b7e95491a94a0c3a08cf082a714ae1bc0fbe429352ea97c9e1bc46170f1bd64bc895f8d6ecd6579543b6f68ea3d5c2bb4e646654b63efe20d1f2cd76bea3c50ebf40174584ddee241bc280b7ec2cd5b4f8371582edcff3f1646d7af04f3665298f6e3b342e98bf34098824da1bb6a7a194d430dbf283170b42caf01edbae97d0b2fe81947e953a7a465efec74eb61baa5182bdba57f02aa5bea761bf07b8ecc174122bd9dbc02987879c4577d90f529683a537a075dcc69317b3eacc210c1e2a679d95a72f7f49e2993d796cc8ff4a487004c0ea3b3f8e60818dc5a934ca3976636e1403b5fc352c513a1b749ef14770cb1f31c2ccf8718657953b716ea20411c3a3217842f14c431f04c9fb44691f84fe0694f65f0949853f9d73b011581a20b33925ac3e75412025be32e35dc18270ba979e15adb475452fb0fae267ab96a92f467c8af2a9416c29137f78e2d6f33cad002cad94de768c682f7759309beec9f8ef458b3ac56411131530887fda43f06537a6c177f022619224955b87bad075c84699fc3db9e9471a16f14cd85aa264ff89166988b101fdb5750ba6084729e8968a84c55dc9a0fd4700642f6f4d1b5f39a923a3db7aefad88bfaf075113d830e9a74afc278a634cb89d1d12ea280a8e632beb42ef17f11ee7348d6713e77d8fe84897682a60877e0983424726e618f0eba344a8204d6bf8fd14eb3b8f1f785dc6df56c4fee9d06306668c5ad8da43f0f06d1a1e39110e96170c8bcc34c68da174a8f7363858d3dd9c66e88021d5941f21dcd71e1cadc20d3f8461c3016ec83040748a2cfba11e2ba84678a66112fe8c84e0b96fc8ffc3d4e0f9db102a3bd09f15babe7cf0aef4fbece25ba7facb266eec73d03aa26527b6aab86d5d0927aaf48086ea45f38d0af29175f6e3a5139a79516a8d0fb5f2c4269761fbccbf6668f0029f77a3fc3fd1bda1f666473ceddc2cb1ecf2ad04340cffbe0618d6f3bae0f54428d1a6c42abada1bc929e3450f223748cd909dbf0fdff812c46a95a66c0846c933bdbf668ce5f80d41aeb03efcc7d15f6f72dfa795c71777db6c1378cb0c33b52ef22f5ab47e302e09723223bf374e06847ed0d344918a8a77d5c8682e6128bce96c50e79ef2a1613e75399549f1d4e3b3ed5b741f0282cfce675fb51bbe68292278d5977292c231e4df1467b4d907db6ea8c0d410f35f5d9657e971f10cfa4458024ae1076c4187e0def1cfd6f3ed1a6dafdca6043f908ce8c74314173a1595545b7203eda1244e235227412f41244a5466a0e78c71b9829cfb151a375c5a44e4ce3d90cf5659439c746aa04ac2f2bb98507f7394cbddc0697ffe0a31ec6a535c9811bc092b708e0b0af94c289b9456d3390073f88f5f7bc258632855f4b84ccbc4f7718f9f1abe2600d68368b990c8ddcedec04c95e0bb4546319280d5e770891e42e8f4b4803fe5f98c3e9e59dbe17fc64d832330059b7ecad36665bbf08c4135b62a4b0dfcfe32cbe697b5ce9f252bb53d64a28c0da5c805a9ad545b7b62ef5f154d8c15f457138b92d7bf7a2ce7d22340692db3b4e702dd243ee00d085127add3dc19195af7f2d262889725b3f7d3f0ed2138d7874d1e44d4b3a5767d0ecff579ef7d188b31c6ae5293bc872b674aced75540e62e69f7dec31d467dddb772313b59889f06a7ef4cc1682582f375dc2ce3479fdaf620b142344ff7ad7d0bf18704aee7ada14733a17bda8d5323cabeba98ca7d157149721471503b6000bde2328bf1bb109d8f47fc6a0e66e2b6b4f66687d79694628be1a7b1f1d281c3b5b28d80c57ef7bf775c621f4c73d11c07f065eeffcce4dc1f760062f056b1397872a4691355fb3e27c4db8b1981ed57a628653915789d80990d5eb5089549c4f9d2f82c760bfcc5084a65cf29d731e7e0815445b7f1847c24120fbb3bf3783e12734343e162daabeb7d17df1f3b17d376813394a48881d78a441715e217726e68a92fe8633a50c5dc82cf997842b19b2bd5c8c4db94be82f182eade97707b2f3237ef9f29c2f6fc2d766b09e98de82f1f37e73c5b15bfc2183bd6f7a45238b27993c27bc8d3329c9691d7bdbfdb7ddd3f4a698c8bd82c2bca08c98e795e7038004f63055f25ec8d7223964eab697cc38b3f773d9467de941ece044d9202479acd9a5e4d44e863f36b73924963d41cd5bda1cd85db9e722494b7db95ad89fb8a1667fd9e3f2d19f58fbaddf99c9c5d1ae975da47c40fda78ae3c3b0b3d8240539302805b732ccbef14bce915ffc3d5a29c9a7cc2ccf8718657953b716ea20411c3a321e605e3f3bcf232bc56f37feec43f8ce3f65f0949853f9d73b011581a20b33925ac3e75412025be32e35dc18270ba979e15adb475452fb0fae267ab96a92f467c8af2a9416c29137f78e2d6f33cad002cad94de768c682f7759309beec9f8ef458b3ac56411131530887fda43f06537a6bb7193a56719709f7b9eb8213b19c493f66e84edb28578dc1b1906cf4ff2ee7ccfa00f5d8cbb9900a069f3a24aa56d6d09a5c49bbcdfeaf83d59d260f861c26a2be9d546179d159837250ce7e77e38ff72afb7cbed3aa1db6b0d1707fcfad373c82c54fa7349ec8815c4b225c331aa3cdcdbd393f0e0de678839742f8da909c442a49cffc967d401c81843c7e99b9739045f1266c009fcae0c87840836fc56b52ea0d66bc29e6cfda3f165aa88803cbc1e7c24fd117d4bd5c6a703bf49b40ef1422b13161cdb04a82baa4a8a1f9e03f795532a443252f9985b2e096a1d7817d1614461b52e969c0fe386306c6d90491eaaec47997799e51845e273a5294444a9f7f73b865b7c97f273fd0a2d3378048a4336d696c23a9db7eb3ffb35cd7c4e4627b9d0fa27fdc644169882a35b0829c4a9ea1087aa285008faa33aaf67a4c42bccb7d65d4ee349127e805a363843e951d4f56959453451208f1a46309fc4b0b894a48881d78a441715e217726e68a92fe8633a50c5dc82cf997842b19b2bd5c8c4db94be82f182eade97707b2f3237ef9f29c2f6fc2d766b09e98de82f1f37e73c5b15bfc2183bd6f7a45238b27993c27bc8d3329c9691d7bdbfdb7ddd3f4a692fdb7a30a8d04a77b0487efe77b91208055f25ec8d7223964eab697cc38b3f773d9467de941ece044d9202479acd9a5e4d44e863f36b73924963d41cd5bda1cd72498f77b76758ec579c96ee3db5363ced2138d7874d1e44d4b3a5767d0ecff53d585991dca793a9816588a9540b2c9e5932bf67e8b23d1157c1ea0f28c2f7f30f3d77e9475e5d42147036b79f15e26f44327eb899ee15ff8ec102f08e3720e8854ca95ee2faaed67ef0c925258ebe82ab929d3e597757cb6694bfa310ce7143a85582d91b9d6d4af007cb3cd2879d0b935ade8d05a6e3651bdd227541e5ed149edb8d104b2a134e590a72997940b34ae7847e3db938d6bd9cf0abbd5832e2c130086343032f54001b89b34d0f734a1e68d13371bd6c5d6484d518366f7e901e95f69de7c1ca95aca2374909371e90162a14e7a2a0090ee5a1453a776701a76e72afb7cbed3aa1db6b0d1707fcfad3737f5bdd93ce144615791bc06922b89697873638c964f69ae455ecc2ca837051ed0dbe82442a20e935af9bcab9dece90c367cdec2b63fa60c64dc70bfc8e772e8fc081ca0aa8b54c9b9c1f57970eb5aa5f938c7c0b2e11e082d28a3a46628ea2eb0ea9d23bed4548c7c41d520603f6724ba4f9286c5f88616871fa111ef1807ee3e8500db72c570ad7269a5bf8c0cf89952dc8813f6efc5e91ddef20ac7a067a7f9ea912d9120799ee9669c604cdfd9409d1d8c71f54308805302bac272a2758c298be41a52dc4da65c970a0d97f07a64bda4d98bf1ca7ababe1fa940cc155d4f144fa6ad7e799f6e22ae9530f312cabf14aee36a8f32f02167c869dc24dcc85c07b1713278d583ace2c0c7427229a46dd0039faf0f15888777435716fb866bc59d42cf5a56da6907aaf33a7491dd4e5ecd04aa17595b8034a0a64203e848ebe735058282050b552adf2dc144e8c51b0eea81781e5f3456a6cbd246e3df8f6b97a1964bebb2172f4676b7ff974513576c4af00c8c7d73f94cb1d8c3d53ee7aacf16306c2a077cbb023bbd0cf33d11df46d898b7c45259f83341829347657b4afc06c5c64082bf2c332a7d70a7d4da241043b5abc1158ccf6127629c52e7ffac422e30926caa53c7d2510e96964bd393370b0fbaeede7480de1c9ee6fff41fa16b86c4e73780210a88e866f1e86f7e2131073122fba34e6fc638cc689296f0cf8215e7c380826090dbfbb7ec567e458effd970a8abc2830f98f18b7cb04adff138dcc51e3efbee911df1055d38ee32303bd1843320dc8b0bb98092757054728afaddc823b8c5df24bef51989a4129529548672672428a97b210e1762e482462b84d86e31ca12102794767aaab0763e1ee6dcbc2d13530525f864e0f948de576a9ce7de71f57a6ae56a8465d9f72251f7ab145354dfd9537f8604f347870d5937b261577fb2688bcb2b041c28309fc0ab8bb07c5a754589319364be173c4f4c82431040898ab10a49ae940f401a09bf1640cc03ed9957f32ffb0be4d82f39e8f40345cca8a1315212353637c43a9b6bc039c6e6a61287f46b5136e2aecc36795ec184c0ef456063ecfc3950bac59535e71dd5e888e1d11539726e4f7ecb0a50452a57bab9ab6c58bf9aef877ce7404e8dc5741d1058d3e57cb6e2c60fe58422782808f378b92a8bb3fcefd4811cdcd0b11b5a2c93c6fd69f1c196578e93ced87b724f843d2c2452499425d6ea62b3fa8d426c088a050411b68942cccbaefde61723adf2798031b77f17989aef2ba873b7db8d18c1383b6db0d614bac90aa05e13c4a6bd793bbb61cde4314da3b48dc19e3fae9d406ef40285b4441632a21d5bc9c06a78f4657a22eb13f267b1b1c038f259c70ef3bb72489811cc7d96330f7bbc73db0e125f508b899f8746f83fc0ff344db3bc6761615a85d7400e63cddb367230e8bba6a356e80a67a6fe663c3e9244504f1ca6ed928ad07cc21fcbf94b7afa0f8566f1f010d1c7dda5b8f19f8a4ad4908bbfadfc95afa09a91bfd0806e5c354615da3b61a7ff21ae44ac477fc0b650717915c778f03f26efec57a81b7e75fc53103b5fc352c513a1b749ef14770cb1f31c2ccf8718657953b716ea20411c3a3213466bc5b3286e4fc98b75309e7e945705ca3601ddffe369ff2f2a2c3fda7f139bd7aaa9d898ca9c54c5fb0dd152a14e2518034c1a8da2d76c193bf02a70a30fe5a49221cd837478643eee798a15de15012ed97766bc34d242c7a26e5e4949f39301ed3e3ba7f538da3ce2670e98a0734bc2f83717ec26d22dff5082678ef9a04675993bd05af9f6a5116fcf3e49a35517ede362dea3b024933b6f20d8499f0b1a8495f5fae1fee223eea7d31f9f6a3814c5798c906631f2fc693fcde08dd975045354dfd9537f8604f347870d5937b264685077f256fa5baf9cd5f9fd54f2c0cd944b32617cbf5239358daac9a6fd45d7d0b735da3ed071e19aa87babfb6720c0272ea483b5cdb0284ec9f9a69d5bbfb0a6b52c6bbc0e3e09b22db0744d677bae716788da3abbf09de81d5d95c02da277a7ef11247db15222e8b05f59f509ec4c371b44042beb4dc55b5dbc777401fcd20b96ff0e981bebc4828ebecc20446f4fa228f1771b9e4d68057147b56e919ea6082eb610bf37400f18364a1ffe9307f0dcf99e1f35acfa44083a4207e02f3dfb8e7a73c5559ec3e6d0bc4e0ea328c8bc3dbda047b47743bae7fce6e1678e84aeb93b9fc5cdad9490e55dbe47e87c56e9b7d9be5d9ab4ee8b28681320896cba3cb5ea7e4a160371c19ef3e8d5fadb0048e330988b10f466d59368d04aca5ad8d75a7a2437d7e990696f9b7dc4cd90fe91b9bea304d9b9e7b5b575b98435549c2d849e5c2b8b14bba8f0971aedb9ebc4873efbec6f5d6d1ce6c7ba9105ae86ebce42110995cd23758bf5c34403733bbeb82233abedbd89bec77619d6e3cb0fe167460e0e21121413bb7005b2b40629a6bc66d833285d080c4ac5d24dd5a2fd0e9a8ffc6d634509a58e92a5baa7da7f17a9012093971a2af6ceb4bbfb44b851545ccd3d37f7eeba9976bb809017376fd0fdb818eafa446ca081e822ae1e376495b488f72d3fb8b7e271afff0b2f2ee9ab5fba149515a15300524f9abf53399cea29e735f6dc84109550d1c4f208632b4f1db0699acf1930e7eb154609cd06df1b33b172cbb5b0eac98823bc767e21049b136266651442ad863c2cc4b342220ca3a6c5ace4656ad33e86b5a7f377b44c770de6e2769607d11c1f01657acd53211c6f6ad1a2257b8b4f50a2e8577eedb1ab909f5745d1d1e337e5b32a0f43ff30001c521249a7e9b4c1547fc4f534e3560af73b3b6ad6e3844723f25bdb42b8d3196640b56a38688968aa984b6d2701083466ad0e482dc08892019a3cfc7f8b4e22179bf3e11d6609e5a1da8e0e1ea48b50dd3bd888641a2889ea2fdc6b66ce28a36466d3cc9661da08183958e5427d7bfda5b06b60571a8c278d6bf485450fbba84c4fee9d06306668c5ad8da43f0f06d1a1e39110e96170c8bcc34c68da174a8f7363858d3dd9c66e88021d5941f21dcd71e1cadc20d3f8461c3016ec83040748a190381d78889152c24fde1650a25cc6834a66a1ec554399bacf05a9f267ee4cb6665420aa6e9c2f7c0a60e67c3f878d045042a0ba5b1f0859edaa536696dfab3d038e484dc52725aa5897d38d652db4e5691d680033d19f350961ee1bd8e7f369212ad5a9550ec73eefe4a0be226c1099c7e48db7cb4e6e48428a626fcad258c4b69c9d07a963b3b4e9e037db43ce2d70052cedc3abaf41acfd3a47493a25b5bf4e753333b7469ca5f1e806a0a826f14bde8ae27445a651f75254679619d7d115a487636f58fb425cd213e1ac87fe6ee88d4e8b72fa7b9f3d9badd0c0ac954b495cb45a19fc654ace40fae4eed768ed9f7987a35ff46f5ca6a04b92510c0c704d66b1de65b998ffbe3a385f7b0e2887bf6b650821d475d73e606ffb8058ef94ce20344e3aff806c449447020aa82f2d9fe8abd00c7b2d3af7b6396f33b088a77cf67a915714fefd721523445fb4716634fd08eaf8faca12215c8113048e00c5d30b9763c4a06a26f8ca7a0c603fd743ac0fa86945dc3cefcb5c9338065dfd2bc736249627b4ddd5f3ff18c39c2cafddc67212e1a8b43901fbc8363e1aae1c3962f7400ff349ff1205e4ea9746f9ba424ced15adee14c60e08e644f77802028f0f7dc2e003d256f78420067acc74c5150f2c57ab7d7df2b90fa665eeb1a5215c9a0f726eb0a797358bcee2d3425af67353c4a82a4c382105f9160a45dbe5945900ce6740913722e23003bb3b8d78386507241320dec04ab17fcadcec6170f5b3d1044f24f3bb11a196bb5138dd04cf585d3bd888641a2889ea2fdc6b66ce28a363921d225183fd75f9a830f930f5cecfa64f6f2e073d2b34e7784ac1dc353c5fa8735566d3b34124bad7854fa0a40b2de1664e3e41c3913888d623bc854e58685d27f72967e7e93fde139ba2e58c72381ec8d35e9cbb26171499605441870bc5c112b82eb8376a13fafff92e16eedb3addea7a81806ab1df54e9eabc026482b2733b2820b4707ca2108d6ada48ad5efc9c296f7b0bddc409d8e3b50d5616dc95347c797e59bf5fc8f0d7f4d778ee9b49191a8c9e6c2413db8837f548d44b9d81d37e6f03da2450358c9f6a69e37b7e95491a94a0c3a08cf082a714ae1bc0fbe42acfbb93d4ea6d4057c2306ba0e3dd099635699155e65717b3571b21ecb3ace1bebba31fa99bdd0728b9b133541d38d3925d142100a4a601c3f150738db5934c2e9da8384928685895c34fa7eeb9160da85268d3ac6fc9e444d860948521e7736bde8ae27445a651f75254679619d7d11c0ebe4119e47e3769d446894e9ee8c3bd4279962e441cadbd75a9817e1b62bc0c8328ac740973bce3b59a3f22cbe4971d2f94717b78d984ebe650d56da0e9c932a9d3e9722704e8d18dbf520f6b2b7a56ab5b2372189ff5baa1e007b78438747b0931d3b1465cd8fdf756cdcaff20fce684e8c4063b053125b404205ac060e1584e55f18e36e5798ac5ec60c8fa712003873f120663c1b4995363605800e4dd25188eb05a52709bcab0d288be439b08cf2de9d25393091153841ca08f17e905238b9f0d9cf3fe87af04f5ec7f90ce5da2d27c3f8aeeecf81b943b06f42f8aeac0704ec0db5af9a2404d0f9a66aff5ac0abe22902d4d15f8433ac361a3cc48033bbbf3ae1ca4ffffccd027fb9ffa963125a2f0c20bf0a02341361ba39845933795bcf974ee4105eda4c7bf49c28f361643848ff1fd44b86e26cfa8decb55a4f93713bb64e064ad1b4d9ed9cb346104697954c8aae1c05cf130755e92a0eec5a51c6bab6f0c49eedfbc98348a6fbf181cf39e5b0281e1a707fc14cf23ccdd3b9b5e3f5a3a569db4a328c19dc36c3a97d97a7e7b14943444dd0614d1dc977258c5115e75fc4005c3c5f6ad0a4ec0a410fd0ec8d35e9cbb26171499605441870bc5c112b82eb8376a13fafff92e16eedb3adfba2267f3a1a411bf62ad00ddab1949180c57ef7bf775c621f4c73d11c07f065eeffcce4dc1f760062f056b1397872a4691355fb3e27c4db8b1981ed57a628653915789d80990d5eb5089549c4f9d2f82c760bfcc5084a65cf29d731e7e0815445b7f1847c24120fbb3bf3783e127343a809185b64d19e9cb7ddba53e46dfcb494a48881d78a441715e217726e68a92fa7f5d21193fdeda227a9fb79c4fd4598c4db94be82f182eade97707b2f3237ef9f29c2f6fc2d766b09e98de82f1f37e73c5b15bfc2183bd6f7a45238b27993c27bc8d3329c9691d7bdbfdb7ddd3f4a6982af074da9690ec666f257801fa2468fc474f112880b307d9c44400ea5768c02dbdf3da9104002ec059d4c1ea9908cdb532d80ce332f1bfb77b0ec11716d97d2e888bd43e644eb779ca4abf1f3dfa9df11478171e59df5eee71387ba1b19b39bf0044dcd3df59dc0b225b3dbf19bcbfc4a8bf0c65aab0f207164164770b8948e208c1b8c767d07fd7093cf9eb511b9f5d146ad1a1924e5fc11819b547756bb6e2558efba4ecbc91dd9df8f506d0187f474b7ebb34e2a307683a535a7d2759ba77ec35fd6ebf69f6f3dcc4042b4b222140fafc1d252f8b2e7054d64325e030010e44653996159c75abcc658ee8639f01a72019915428c967ca13f492eaf6b79367c6fff8eb2747e6a194bb354d8b180ab154d8c15f457138b92d7bf7a2ce7d22340692db3b4e702dd243ee00d085127adf0d0cc57a3c7aef3e515d3d4f5e7aebeed2138d7874d1e44d4b3a5767d0ecff579ef7d188b31c6ae5293bc872b674aced82946c69daf05aaba656401e82f77ac31e4a711cfbc4d53052145419d63664a8735566d3b34124bad7854fa0a40b2de97423cb0aa8aaede6ab012f344b91d994fae9069bf746e220067dcaa7f49241ea0b5e62659fc145d55c39dc50a1d8470d89687a419f8a9c4e2a4c610917f85cba662b8a2659786f5dbbc42fc19413c1c2a32bef62955b7238e081283547dcd8d4dd1c887ec66e6d8c9f467c6f10a9857f6e60cf67adbc5754be73cb2d91d55942977ae66a30dc3b22030e32c45a17668eaf7dfab49b22678897a96eb37aec6f8ec0370775c1c629df83289f00a85330f66d1737f731ab3a6f5c8ee8f8151ad25b81a5e11fcd1fce0b2a16b9aa96be5da265bb1352f383fb235b37baff944fdc2ce4794a27610bc536f95eb13f1d5fdf00a710b3151b61b052e42283f71352893245afa22cdeec807bf0efece9ab828ebfead2a365d30d8d14c69a5ce07523d51578d86d942495ab3ea81230f228b09d1baba20da3267871fc82402a658fc491a7e2ae599e200f7d3706e4c25bb67af900d6061574f60610acaa991a5d2de35185b34d2dfdfff32a72f2989f57167c872b78f7a207557d0478225150863fb123fa85c44ceacab72841e33719d6fbd40e13299642a99aea81e87f796e1d6b41505647c8e1b72f9e1856ae4238f7c9519c14e95b5e1884724666447853428eefaf042c188b77fccd72eb44edee060d836ffc9e8bf4e95d5f6fd2c2b9cd852f2ede486c6faabd8fab2a29bc3ce13d0bae89515b5bd64cc670461fdb5f946780c26c7813ace8e4b162806be11430d9b113ccdba4926968efbc0ebf608a8ea5bd162060962d82e1fa4672871157a694690b8288b6dcbdc6a083d60a3f68aaeda130258dae54d60ffe8c9bc59c81e458269e6bc72afb7cbed3aa1db6b0d1707fcfad37394bee374bdaad0fd7aa84bbb67285184ed22bcec2e19bf9713db1b3cc0a2c38be3f5a3a569db4a328c19dc36c3a97d97bdaec852158064c6634ba577cacb913b92fb784a51f731bf66cc4f75b159eb47ed61c88c6740dfcc100814d45e1bbc8256e00c3b9e96bc86d3d2d761f71b30c9519e47e1109edaa6f2097c84ff58279ee237b9e8781d0b6c0e8bbd65b90af9648472289f8e2742ab6d511b219dfa5cb200718208a48c5626f161e3c210bea15842d3dd2bb42e20180ad9d571db79237f994d3b3bdf075a74e3d5ef77ff5659780a16c59ccc928c963766ab4c2819aadbf407325ce3c38728a2518bf6c9152da8302bda284c38c846ea65a49c9b5896ecbedf57ae54ba78ef15662bef1d254075f541a08569e761ab7f6ec915d9799aa5f7c70067706d8ac0d7e5865d341635c2e3d896a03a645f0b718249c1eee0fa0c273f0fd60f04548054df716a6acd227495695c19e237bb693e838f9c7b1f3c5d0401d86ecaf5d8a5df5fedc0a01c165dd0276e3be465f8455a126d47685effca7ba822ccf89b3ea6fd8a5a45fe8fd2d2b516383c7125456682094d4d62b001d003b5fc352c513a1b749ef14770cb1f31c2ccf8718657953b716ea20411c3a32110e217106d6895486d9849c16479b52bf65f0949853f9d73b011581a20b3392540c0e4a916e14fc64c52dfa6a8c8fe7c7d7595113d93cc682c099176f53dc4168af2a9416c29137f78e2d6f33cad002cad94de768c682f7759309beec9f8ef458b3ac56411131530887fda43f06537a6331c3a61e0261948cbaecd445bb30f73f66e84edb28578dc1b1906cf4ff2ee7ccfa00f5d8cbb9900a069f3a24aa56d6dd8fc66254c72d88218bf32779424e8b440f4cdf1cf4cd0e40efdc0d55cf1e43326cddce71a8f002cba203ec58650e200121968c7dd95874c3b274600093e15641f0601192d88bb491a87bae596092b81d9f7af1af4fdaeb650708bbe20db7b489174970ab554f1eb7005be0a30b28f135f809c3d3ad7882bd0f2c407b6e4eb082a6ca18a7fafc38d1ecdcf3dd8dddeaa6e6a61287f46b5136e2aecc36795ec184c0ef456063ecfc3950bac59535e71dde3efdb1f075b86914c6f4084cedcd7fe1a9c6777f7046a846e01eb967baf9ee3ef4c99023b91e812b2f7e53e949695a3c088a050411b68942cccbaefde61723a8e91241ac5c64cecdf2caa472d63966c4dd20389eb4788699f33e2300b26f3ef5363c5773e93a5c3569363b139f4d0b5d27ac7dc173e036610532378a8e26d8594a48881d78a441715e217726e68a92f660617d238dffafd46db4a589cc2a9dec4db94be82f182eade97707b2f3237ef9f29c2f6fc2d766b09e98de82f1f37e73c5b15bfc2183bd6f7a45238b27993c27bc8d3329c9691d7bdbfdb7ddd3f4a692fdb7a30a8d04a77b0487efe77b91208b61f77241fb866ae1355f716229f552c3d9467de941ece044d9202479acd9a5e5995fb2fb94f4a2f7d81ea32c3a31d813d933e4b9e2c69c499f1d77349ece09299d17998288306105038fd97ebddbb6612471ccb6c700b8e975f23438d99e1135932bf67e8b23d1157c1ea0f28c2f7f34f616911bf8739406dd7a2fede00b53644327eb899ee15ff8ec102f08e3720e8854ca95ee2faaed67ef0c925258ebe82ab929d3e597757cb6694bfa310ce7143a85582d91b9d6d4af007cb3cd2879d0b935ade8d05a6e3651bdd227541e5ed149edb8d104b2a134e590a72997940b34afc42c5e63eb2e880844add5d9916f48030086343032f54001b89b34d0f734a1e68d13371bd6c5d6484d518366f7e901eb3ec9ab9cdbe52d03ae17b1a532fa9465bd65808f6985f19eb8a7b31300827ac72afb7cbed3aa1db6b0d1707fcfad3731f6e4708fe97878d5f540d64dee7afb159b1cb3cdda9f2c9341b74fccec90bc20bda53f77cbed7263214ba709b621a3165332148f866eed5315fa27d5607e667c3b7f95433e8275824e931bee61fc8744fae9069bf746e220067dcaa7f49241ea0b5e62659fc145d55c39dc50a1d8470ca97f6c6929bbcf31ff8c30b36766688c49d79968de1ca3661a14d54896a7892d23a108af06caa989e842240bd19353b24e7c89e30b00eacf7182505397c3f238186a0bcceefec1c28b891bb0b5666c2f7773e8114c0f83d7be9a8d1dccf19bedbadc89430d650930e3012d20cdc95262bb5b250a37537444fa93b406b59c257ba77fe6a39e2d32579ed4f1eaacca9e2deada9bf44d82c357aa8820041f1d9c2099d7aba906c454f4bbdc1b2e1f5896fed5c234c229814f9a31a7957f334f25b0a42fb3902bd4e51e75eead0fa96323be3d896a03a645f0b718249c1eee0fa0c3d579d489e51533f13ed458ef07a6c1de8f5573af220a806a7ef87fe32a877aaa589e66204501c667ecfd7f9f42d1eb9f7dba3bb3f97f7eadd85ce05124426cf263192e0cd72480b46b1310b986809302f628eb674c14fdfa51cb81cd859ee8d'
//console.log(u(data_1))// 请求加密测试
function d(e) {var t = l.encrypt(e, "30062AFC48C0E7B5B0918851C0445A37");return t
}// 外面改成 ' '  里面不能改成单引号,里面改成单引号,就不是json字符串了
// data_2 = '{"applyType":1,"year":2025,"buyerName":"","code":"","areaCode":"","status":"","distributor":"","enterpriseId":"","factoryNumber":"","machineCode":"","purchaseDateStart":"","purchaseDateEnd":"","pageNum":2,"pageSize":15}'
// console.log(d(data_2))// 方式一
// function r(e) {
//     var t = s(e);
//     return t
// }
//
// function h(e) {
//     var t = JSON.parse(e)
//         , n = Object.keys(t).sort()
//         , i = n.map((function (e) {
//             var n = t[e];
//             if (n) {
//                 var i = ""
//                     , c = encodeURIComponent(e);
//                 return i = "object" === Object(a["a"])(n) ? JSON.stringify(n) : n,
//                     "".concat(c, "=").concat(i)
//             }
//         }
//     ));
//     i = i.filter((function (e) {
//             return void 0 !== e && null !== e && "" !== e
//         }
//     ));
//     var c = i.join("&");
//     return c
// }
//
// function p(e) {
//     var t, n = Date.now();
//     return e ? (e = JSON.parse(u(e.parameter)),
//         e.timestamp = n,
//         e = JSON.stringify(e),
//         t = h(e),
//         t += "&key=HD7232D2AAAKA@978D8723H211?IER&6",
//         {
//             sign: d(r(t).toLocaleUpperCase()),
//             timestamp: d(n.toString()),
//             source: "ZRCSL7V0JIRK1PHY"
//         }) : (e = e || {},
//         e.timestamp = n,
//         e = JSON.stringify(e),
//         t = h(e),
//         t += "&key=HD7232D2AAAKA@978D8723H211?IER&6",
//         {
//             sign: d(r(t).toLocaleUpperCase()),
//             timestamp: d(n.toString()),
//             source: "ZRCSL7V0JIRK1PHY"
//         })
// }
//
//
// var a = n("53ca")
// var s = n("8060").sm3;
//
// dict = {
//     "parameter": "41a69732cb266f361a31837c0916648bb8291635c087e530d1a25683d1160ee6265dcefe370b55d7e6ac9aca916fd2136f93e8f4248b1bda1f084d3d281ef4c558c2386e83cbef7944b0cd502dac9fd4ded0caf3a0cb7f2a9dd1907d1e576b5d33b825d1dcfce86ad6f94db52e8f3603d3bd888641a2889ea2fdc6b66ce28a36fd06b8dab3ce2b23a291932e42192719ce2c68f7dff16888924b7c383b33663c74c74a194438fc847eed16c0e16a3667954f332d0418d865537f467f329fe9a1bb98f9d3d4bcb55c384304a8a62bba72f7e663f5b8c725b71304213cab17de23"
// }
// console.log(p(dict))// 方式二//r = a("dd88")    // 其实a这个加载器函数,就是n加载器函数,所以这里我们可以直接替换,把a替换成n
r = n("dd88")
function get_sign(data){return r["c"](data)
}dict = {"parameter": "41a69732cb266f361a31837c0916648bb8291635c087e530d1a25683d1160ee6265dcefe370b55d7e6ac9aca916fd2136f93e8f4248b1bda1f084d3d281ef4c558c2386e83cbef7944b0cd502dac9fd4ded0caf3a0cb7f2a9dd1907d1e576b5d33b825d1dcfce86ad6f94db52e8f3603d3bd888641a2889ea2fdc6b66ce28a36fd06b8dab3ce2b23a291932e42192719ce2c68f7dff16888924b7c383b33663c74c74a194438fc847eed16c0e16a3667954f332d0418d865537f467f329fe9a1bb98f9d3d4bcb55c384304a8a62bba72f7e663f5b8c725b71304213cab17de23"
}
console.log(get_sign(dict)) 

1.5.3、加载器函数文件:03 loader.js

window = global;
/******/
(function (modules) { // webpackBootstrap/******/     // install a JSONP callback for chunk loading/******/function webpackJsonpCallback(data) {/******/var chunkIds = data[0];/******/var moreModules = data[1];/******/var executeModules = data[2];/******//******/         // add "moreModules" to the modules object,/******/         // then flag all "chunkIds" as loaded and fire callback/******/var moduleId, chunkId, i = 0, resolves = [];/******/for (; i < chunkIds.length; i++) {/******/chunkId = chunkIds[i];/******/if (Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {/******/resolves.push(installedChunks[chunkId][0]);/******/}/******/installedChunks[chunkId] = 0;/******/}/******/for (moduleId in moreModules) {/******/if (Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {/******/modules[moduleId] = moreModules[moduleId];/******/}/******/}/******/if (parentJsonpFunction) parentJsonpFunction(data);/******//******/while (resolves.length) {/******/resolves.shift()();/******/}/******//******/         // add entry modules from loaded chunk to deferred list/******/deferredModules.push.apply(deferredModules, executeModules || []);/******//******/         // run deferred modules when all chunks ready/******/return checkDeferredModules();/******/};/******/function checkDeferredModules() {/******/var result;/******/for (var i = 0; i < deferredModules.length; i++) {/******/var deferredModule = deferredModules[i];/******/var fulfilled = true;/******/for (var j = 1; j < deferredModule.length; j++) {/******/var depId = deferredModule[j];/******/if (installedChunks[depId] !== 0) fulfilled = false;/******/}/******/if (fulfilled) {/******/deferredModules.splice(i--, 1);/******/result = __webpack_require__(__webpack_require__.s = deferredModule[0]);/******/}/******/}/******//******/return result;/******/}/******//******/     // The module cache/******/var installedModules = {};/******//******/     // object to store loaded CSS chunks/******/var installedCssChunks = {/******/        "runtime": 0/******/}/******//******/     // object to store loaded and loading chunks/******/     // undefined = chunk not loaded, null = chunk preloaded/prefetched/******/     // Promise = chunk loading, 0 = chunk loaded/******/var installedChunks = {/******/        "runtime": 0/******/};/******//******/var deferredModules = [];/******//******/     // script path function/******/function jsonpScriptSrc(chunkId) {/******/return __webpack_require__.p + "static/js/" + ({"chunk-commons": "chunk-commons"}[chunkId] || chunkId) + ".1756979604601.js"/******/}/******//******/     // The require function/******/function __webpack_require__(moduleId) {/******//******/         // Check if module is in cache/******/if (installedModules[moduleId]) {/******/return installedModules[moduleId].exports;/******/}/******/         // Create a new module (and put it into the cache)/******/var module = installedModules[moduleId] = {/******/            i: moduleId,/******/            l: false,/******/            exports: {}/******/};/******//******/         // Execute the module function/******/console.log("moduleId:::",moduleId)modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);/******//******/         // Flag the module as loaded/******/module.l = true;/******//******/         // Return the exports of the module/******/return module.exports;/******/}// 在n.x调用地方上面添加全局写入window.loader = __webpack_require__/******//******/     // This file contains only the entry chunk./******/     // The chunk loading function for additional chunks/******/__webpack_require__.e = function requireEnsure(chunkId) {/******/var promises = [];/******//******//******/         // mini-css-extract-plugin CSS loading/******/var cssChunks = {"chunk-0410c6c2": 1,"chunk-04b1b81e": 1,"chunk-05730c00": 1,"chunk-06499ea2": 1,"chunk-0824f430": 1,"chunk-08931d38": 1,"chunk-08ab38e9": 1,"chunk-107f74cf": 1,"chunk-15e37911": 1,"chunk-1c5a62f8": 1,"chunk-27846cfd": 1,"chunk-27dfdc30": 1,"chunk-2cfb5722": 1,"chunk-3d698df2": 1,"chunk-3db54e1b": 1,"chunk-3ec1a7ac": 1,"chunk-43ed7581": 1,"chunk-46f2cf5c": 1,"chunk-4a5d46ab": 1,"chunk-4a7dd5f8": 1,"chunk-4ac72130": 1,"chunk-527b5b68": 1,"chunk-5b4064c8": 1,"chunk-5d45c80d": 1,"chunk-5e3b521a": 1,"chunk-5e79866f": 1,"chunk-61f63e18": 1,"chunk-6360f155": 1,"chunk-066b348c": 1,"chunk-27e8e01c": 1,"chunk-3750bee2": 1,"chunk-8f4dc4aa": 1,"chunk-682187c6": 1,"chunk-7f6b0704": 1,"chunk-89ec4984": 1,"chunk-8b3b4e52": 1,"chunk-964d256a": 1,"chunk-c4bd4688": 1,"chunk-c97aa72c": 1,"chunk-commons": 1,"chunk-1bb66f90": 1,"chunk-1c00b55a": 1,"chunk-20128ad3": 1,"chunk-7451c552": 1,"chunk-76a01ace": 1,"chunk-28616ac4": 1,"chunk-372c06ac": 1,"chunk-3786ed54": 1,"chunk-39c38942": 1,"chunk-50cbaac2": 1,"chunk-5b97d370": 1,"chunk-60ea7b5c": 1,"chunk-fbc0b0d8": 1,"chunk-6f12c018": 1,"chunk-779e4db2": 1,"chunk-8976820c": 1,"chunk-a5c87456": 1,"chunk-a6e70c4c": 1,"chunk-da140868": 1,"chunk-dd18e64e": 1,"chunk-fb18a074": 1,"chunk-d231e390": 1,"chunk-e5185d9e": 1,"chunk-e71883e2": 1,"chunk-e5fd2e94": 1,"chunk-f6cf1b7c": 1,"chunk-7a54b226": 1,"chunk-7b85f110": 1,"chunk-b0cc02b0": 1,"chunk-506f50b3": 1,"chunk-572dca7f": 1,"chunk-674dad47": 1,"chunk-6060a80a": 1,"chunk-124eca28": 1,"chunk-541a3e60": 1};/******/if (installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);/******/ else if (installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {/******/promises.push(installedCssChunks[chunkId] = new Promise(function (resolve, reject) {/******/var href = "static/css/" + ({"chunk-commons": "chunk-commons"}[chunkId] || chunkId) + "." + {"chunk-0410c6c2": "69ed4fa3","chunk-04b1b81e": "d3526481","chunk-05730c00": "8b856d52","chunk-06499ea2": "875762d8","chunk-0824f430": "570a7df1","chunk-08931d38": "fe1b82f5","chunk-08ab38e9": "88e1625d","chunk-107f74cf": "9d38cd51","chunk-15e37911": "c8e9871f","chunk-18c71056": "31d6cfe0","chunk-1c5a62f8": "2b54d8ce","chunk-27846cfd": "f488da1d","chunk-27dfdc30": "0b997858","chunk-2d0e2366": "31d6cfe0","chunk-2cfb5722": "d5476a86","chunk-2d0f012d": "31d6cfe0","chunk-3d698df2": "20c0a1f4","chunk-3db54e1b": "0a123e60","chunk-3ec1a7ac": "a5debf3c","chunk-43ed7581": "a6e27419","chunk-46f2cf5c": "36e4c802","chunk-4a5d46ab": "36ab1ac7","chunk-4a7dd5f8": "c53cec24","chunk-4ac72130": "6ea275e8","chunk-527b5b68": "c263e085","chunk-5b4064c8": "8620acbe","chunk-5d45c80d": "5a7368a5","chunk-5e3b521a": "68a17f5f","chunk-5e79866f": "541e9572","chunk-61f63e18": "a472e94c","chunk-6360f155": "ffb299cf","chunk-6e83591c": "31d6cfe0","chunk-30d719b2": "31d6cfe0","chunk-066b348c": "a5f46f15","chunk-27e8e01c": "9d07d199","chunk-3750bee2": "357c81e8","chunk-8f4dc4aa": "a3ab62b7","chunk-4a7d8e89": "31d6cfe0","chunk-682187c6": "8708c1ba","chunk-79bf461c": "31d6cfe0","chunk-7f6b0704": "d3e59927","chunk-89ec4984": "60cd9f52","chunk-8b3b4e52": "2a02122f","chunk-964d256a": "27a4eade","chunk-c4bd4688": "70c6b038","chunk-c97aa72c": "3fe4c3d6","chunk-commons": "52a787b7","chunk-06b9fab6": "31d6cfe0","chunk-1bb66f90": "f2861f98","chunk-1c00b55a": "fa508ab6","chunk-20128ad3": "eefe138e","chunk-7451c552": "ec96be4d","chunk-76a01ace": "1fb5b8c5","chunk-251dc971": "31d6cfe0","chunk-28616ac4": "20d72c51","chunk-372c06ac": "0c2327f5","chunk-3786ed54": "6283c141","chunk-39c38942": "10c097c3","chunk-50cbaac2": "9bee359a","chunk-5b97d370": "22d1ed98","chunk-60ea7b5c": "286da6c1","chunk-ea685e08": "31d6cfe0","chunk-fbc0b0d8": "218a01da","chunk-6f12c018": "a2662a70","chunk-779e4db2": "9e507e43","chunk-8976820c": "d4543304","chunk-a5c87456": "b8fe3420","chunk-a6e70c4c": "5ded6d05","chunk-da140868": "e42a6c73","chunk-dd18e64e": "9ef4d3a9","chunk-fb18a074": "5179188e","chunk-d19c1a98": "31d6cfe0","chunk-d231e390": "de49af64","chunk-d9bf117c": "31d6cfe0","chunk-e5185d9e": "2e844b6f","chunk-e71883e2": "14c9d422","chunk-cf7ab578": "31d6cfe0","chunk-e5fd2e94": "0de2f057","chunk-f6cf1b7c": "095aa4ab","chunk-7a54b226": "d0290e0a","chunk-7b85f110": "730c5c6b","chunk-b0cc02b0": "c56ccf50","chunk-506f50b3": "6c17efcd","chunk-38a7de8a": "31d6cfe0","chunk-572dca7f": "9184a723","chunk-674dad47": "bd4bc23c","chunk-6060a80a": "88ee9c29","chunk-124eca28": "bd4bc23c","chunk-541a3e60": "9184a723"}[chunkId] + ".css";/******/var fullhref = __webpack_require__.p + href;/******/var existingLinkTags = document.getElementsByTagName("link");/******/for (var i = 0; i < existingLinkTags.length; i++) {/******/var tag = existingLinkTags[i];/******/var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");/******/if (tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return resolve();/******/}/******/var existingStyleTags = document.getElementsByTagName("style");/******/for (var i = 0; i < existingStyleTags.length; i++) {/******/var tag = existingStyleTags[i];/******/var dataHref = tag.getAttribute("data-href");/******/if (dataHref === href || dataHref === fullhref) return resolve();/******/}/******/var linkTag = document.createElement("link");/******/linkTag.rel = "stylesheet";/******/linkTag.type = "text/css";/******/linkTag.onload = resolve;/******/linkTag.onerror = function (event) {/******/var request = event && event.target && event.target.src || fullhref;/******/var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + request + ")");/******/err.code = "CSS_CHUNK_LOAD_FAILED";/******/err.request = request;/******/delete installedCssChunks[chunkId]/******/linkTag.parentNode.removeChild(linkTag)/******/reject(err);/******/};/******/linkTag.href = fullhref;/******//******/var head = document.getElementsByTagName("head")[0];/******/head.appendChild(linkTag);/******/}).then(function () {/******/installedCssChunks[chunkId] = 0;/******/}));/******/}/******//******/         // JSONP chunk loading for javascript/******//******/var installedChunkData = installedChunks[chunkId];/******/if (installedChunkData !== 0) { // 0 means "already installed"./******//******/             // a Promise means "currently loading"./******/if (installedChunkData) {/******/promises.push(installedChunkData[2]);/******/} else {/******/                 // setup Promise in chunk cache/******/var promise = new Promise(function (resolve, reject) {/******/installedChunkData = installedChunks[chunkId] = [resolve, reject];/******/});/******/promises.push(installedChunkData[2] = promise);/******//******/                 // start chunk loading/******/var script = document.createElement('script');/******/var onScriptComplete;/******//******/script.charset = 'utf-8';/******/script.timeout = 120;/******/if (__webpack_require__.nc) {/******/script.setAttribute("nonce", __webpack_require__.nc);/******/}/******/script.src = jsonpScriptSrc(chunkId);/******//******/                 // create error before stack unwound to get useful stacktrace later/******/var error = new Error();/******/onScriptComplete = function (event) {/******/                     // avoid mem leaks in IE./******/script.onerror = script.onload = null;/******/clearTimeout(timeout);/******/var chunk = installedChunks[chunkId];/******/if (chunk !== 0) {/******/if (chunk) {/******/var errorType = event && (event.type === 'load' ? 'missing' : event.type);/******/var realSrc = event && event.target && event.target.src;/******/error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';/******/error.name = 'ChunkLoadError';/******/error.type = errorType;/******/error.request = realSrc;/******/chunk[1](error);/******/}/******/installedChunks[chunkId] = undefined;/******/}/******/};/******/var timeout = setTimeout(function () {/******/onScriptComplete({type: 'timeout', target: script});/******/}, 120000);/******/script.onerror = script.onload = onScriptComplete;/******/document.head.appendChild(script);/******/}/******/}/******/return Promise.all(promises);/******/};/******//******/     // expose the modules object (__webpack_modules__)/******/__webpack_require__.m = modules;/******//******/     // expose the module cache/******/__webpack_require__.c = installedModules;/******//******/     // define getter function for harmony exports/******/__webpack_require__.d = function (exports, name, getter) {/******/if (!__webpack_require__.o(exports, name)) {/******/Object.defineProperty(exports, name, {enumerable: true, get: getter});/******/}/******/};/******//******/     // define __esModule on exports/******/__webpack_require__.r = function (exports) {/******/if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {/******/Object.defineProperty(exports, Symbol.toStringTag, {value: 'Module'});/******/}/******/Object.defineProperty(exports, '__esModule', {value: true});/******/};/******//******/     // create a fake namespace object/******/     // mode & 1: value is a module id, require it/******/     // mode & 2: merge all properties of value into the ns/******/     // mode & 4: return value when already ns object/******/     // mode & 8|1: behave like require/******/__webpack_require__.t = function (value, mode) {/******/if (mode & 1) value = __webpack_require__(value);/******/if (mode & 8) return value;/******/if ((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;/******/var ns = Object.create(null);/******/__webpack_require__.r(ns);/******/Object.defineProperty(ns, 'default', {enumerable: true, value: value});/******/if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {return value[key];}.bind(null, key));/******/return ns;/******/};/******//******/     // getDefaultExport function for compatibility with non-harmony modules/******/__webpack_require__.n = function (module) {/******/var getter = module && module.__esModule ?/******/            function getDefault() {return module['default'];} :/******/            function getModuleExports() {return module;};/******/__webpack_require__.d(getter, 'a', getter);/******/return getter;/******/};/******//******/     // Object.prototype.hasOwnProperty.call/******/__webpack_require__.o = function (object, property) {return Object.prototype.hasOwnProperty.call(object, property);};/******//******/     // __webpack_public_path__/******/__webpack_require__.p = "/";/******//******/     // on error function for async loading/******/__webpack_require__.oe = function (err) {console.error(err);throw err;};/******//******/var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || [];/******/var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);/******/jsonpArray.push = webpackJsonpCallback;/******/jsonpArray = jsonpArray.slice();/******/for (var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);/******/var parentJsonpFunction = oldJsonpFunction;/******//******//******/     // run deferred modules from other chunks/******/checkDeferredModules();/******/
})/************************************************************************//******/ ([]);

1.5.4、模块文件:04 mod01.js

image

1.5.5、模块文件:05 mod02.js

image

二、方式二:国密SM3、SM4

const sm = require("sm-crypto")   // npm install sm-crypto  执行这个进行导包

image

 由上图的代码: var l = n("8060").sm4;  我们应该首选SM4国密算法,如果不认识或者不知道,那就按照正常的操作webpack,如果知道是SM4,那么最好还是使用国密算法

如果想调用这个SM4或者SM3就不一定必须使用代码中的 n("8060") 这个webpack对象了,可以直接 导包调用,如果不知道可以直接使用deepseek查询

image

image

image

2.1、代码文件02 butie.js

const sm = require("sm-crypto")   // npm install sm-crypto  执行这个进行导包
var l = sm.sm4;   // 调用加载器的某个模块function u(e) {var t = l.decrypt(e, "30062AFC48C0E7B5B0918851C0445A37");return t
}//响应解密测试
// data_1 = 'd7eb7831e3a2a0868562b28f00307c657a150b09f17ee85620d60d445cd76af0348b9106b859d78a0f7a887f86041ad12042dc18a313a7c2361133bb8274b83b185c8037c624ff6394c4695721a83a296e0d675689bc7ea15301c13a1486428dc8ab52f3ed95998fc72d44a0b0eb6ba016656c78f317f52383dd5a257181bdbf14c9ca472055e3ea5d1306ec1f6f5d80c254a073474f33cdfbf48c651b025070d6f715acd9135785410f616dfb0ea74346b028b2aa6c742e67d1f7eb3828f8675d57c83097ae68553e9317faba910898c34ee079a8a87e0216130c7713721f80d0e9b21942d9328d846aeec24f30d9cf71f430577119a904dfdb5c8de4f23780a74f4476356c0ccf74eeb72ee35e35455ed27bf99d052a0dc46d259b507fb25168048d32ffd8305a60d204dd1c67f95a37939f08801d0ab44d24542fa4e7a6e3a51952013a24904ba54fc9750adbd99942a49cffc967d401c81843c7e99b973953fb1cf90214b9c084927432428d5638a73b13ed0aea451f55c88d074f3c89a9d6308c509889e745cec13e20acb6a7b78ca6d4d581a43f5fc1af0fe14ba167ce0e6e47a2ff44a1e1b53c52b9686b7e27501aa51fdb0b4ba464dc2a379e3859f227f84fa346b5a937da8f25fceec28b7080c57ef7bf775c621f4c73d11c07f065eeffcce4dc1f760062f056b1397872a4691355fb3e27c4db8b1981ed57a628653915789d80990d5eb5089549c4f9d2f82c760bfcc5084a65cf29d731e7e0815445b7f1847c24120fbb3bf3783e127343a809185b64d19e9cb7ddba53e46dfcb494a48881d78a441715e217726e68a92ff87bc53737f9968de5d0caca931c6c2dc4db94be82f182eade97707b2f3237ef9f29c2f6fc2d766b09e98de82f1f37e73c5b15bfc2183bd6f7a45238b27993c27bc8d3329c9691d7bdbfdb7ddd3f4a6996a3c17cdc635af9dd149833039f0171af4101d1de894d33fa604ddf303cdd553d9467de941ece044d9202479acd9a5e78c563654c89444232c2b1e2567ca860db1fb0cb7fe881b8addcf8e75980cc4ba229712290f629b661d34b3bf00ee7325ba784493a94b70fe591749dcbbfb5bfac88afd193d245ec0de97838816883c53bbece4305c71221aec60ee83a34ed28d6f715acd9135785410f616dfb0ea743d41d71261d9cb97bbff9171c5d13190b7bb19c9dd4228e2ebd521f8de660fff8fea2c9b198e7e7c8c0b1355ec2d21bb299a63ca89ab093eca160afb7b401a41da1ee34fca31e52c8705b268956aee314d3dece72f93b1f34daaac95bc9d3d4383f14649eeb87fd1c2b05fead609c002bcfa00f5d8cbb9900a069f3a24aa56d6dfc7bfe19e71175b810d5def35d9a714580b6647a0f0656108d708038ac9a8eb211ee17015d994f20342a6f30aff90ed60934526e00a5e2c308d1bc5f51dc4ab360eca94d35e08c90e3b6e9912425360e7d0b735da3ed071e19aa87babfb6720c0272ea483b5cdb0284ec9f9a69d5bbfb0a6b52c6bbc0e3e09b22db0744d677bae716788da3abbf09de81d5d95c02da277a7ef11247db15222e8b05f59f509ec407b3765d78b558ba5374c6b584fb40e425d4b7992805f5ee6fbd0cf481f34ef2e674e08e3355a4ad939afab23dab24188fada5776de38ab1beeab78285a19a4cc296f7b0bddc409d8e3b50d5616dc95347c797e59bf5fc8f0d7f4d778ee9b49191a8c9e6c2413db8837f548d44b9d81d37e6f03da2450358c9f6a69e37b7e95491a94a0c3a08cf082a714ae1bc0fbe429352ea97c9e1bc46170f1bd64bc895f8d6ecd6579543b6f68ea3d5c2bb4e646654b63efe20d1f2cd76bea3c50ebf40174584ddee241bc280b7ec2cd5b4f8371582edcff3f1646d7af04f3665298f6e3b342e98bf34098824da1bb6a7a194d430dbf283170b42caf01edbae97d0b2fe81947e953a7a465efec74eb61baa5182bdba57f02aa5bea761bf07b8ecc174122bd9dbc02987879c4577d90f529683a537a075dcc69317b3eacc210c1e2a679d95a72f7f49e2993d796cc8ff4a487004c0ea3b3f8e60818dc5a934ca3976636e1403b5fc352c513a1b749ef14770cb1f31c2ccf8718657953b716ea20411c3a3217842f14c431f04c9fb44691f84fe0694f65f0949853f9d73b011581a20b33925ac3e75412025be32e35dc18270ba979e15adb475452fb0fae267ab96a92f467c8af2a9416c29137f78e2d6f33cad002cad94de768c682f7759309beec9f8ef458b3ac56411131530887fda43f06537a6c177f022619224955b87bad075c84699fc3db9e9471a16f14cd85aa264ff89166988b101fdb5750ba6084729e8968a84c55dc9a0fd4700642f6f4d1b5f39a923a3db7aefad88bfaf075113d830e9a74afc278a634cb89d1d12ea280a8e632beb42ef17f11ee7348d6713e77d8fe84897682a60877e0983424726e618f0eba344a8204d6bf8fd14eb3b8f1f785dc6df56c4fee9d06306668c5ad8da43f0f06d1a1e39110e96170c8bcc34c68da174a8f7363858d3dd9c66e88021d5941f21dcd71e1cadc20d3f8461c3016ec83040748a2cfba11e2ba84678a66112fe8c84e0b96fc8ffc3d4e0f9db102a3bd09f15babe7cf0aef4fbece25ba7facb266eec73d03aa26527b6aab86d5d0927aaf48086ea45f38d0af29175f6e3a5139a79516a8d0fb5f2c4269761fbccbf6668f0029f77a3fc3fd1bda1f666473ceddc2cb1ecf2ad04340cffbe0618d6f3bae0f54428d1a6c42abada1bc929e3450f223748cd909dbf0fdff812c46a95a66c0846c933bdbf668ce5f80d41aeb03efcc7d15f6f72dfa795c71777db6c1378cb0c33b52ef22f5ab47e302e09723223bf374e06847ed0d344918a8a77d5c8682e6128bce96c50e79ef2a1613e75399549f1d4e3b3ed5b741f0282cfce675fb51bbe68292278d5977292c231e4df1467b4d907db6ea8c0d410f35f5d9657e971f10cfa4458024ae1076c4187e0def1cfd6f3ed1a6dafdca6043f908ce8c74314173a1595545b7203eda1244e235227412f41244a5466a0e78c71b9829cfb151a375c5a44e4ce3d90cf5659439c746aa04ac2f2bb98507f7394cbddc0697ffe0a31ec6a535c9811bc092b708e0b0af94c289b9456d3390073f88f5f7bc258632855f4b84ccbc4f7718f9f1abe2600d68368b990c8ddcedec04c95e0bb4546319280d5e770891e42e8f4b4803fe5f98c3e9e59dbe17fc64d832330059b7ecad36665bbf08c4135b62a4b0dfcfe32cbe697b5ce9f252bb53d64a28c0da5c805a9ad545b7b62ef5f154d8c15f457138b92d7bf7a2ce7d22340692db3b4e702dd243ee00d085127add3dc19195af7f2d262889725b3f7d3f0ed2138d7874d1e44d4b3a5767d0ecff579ef7d188b31c6ae5293bc872b674aced75540e62e69f7dec31d467dddb772313b59889f06a7ef4cc1682582f375dc2ce3479fdaf620b142344ff7ad7d0bf18704aee7ada14733a17bda8d5323cabeba98ca7d157149721471503b6000bde2328bf1bb109d8f47fc6a0e66e2b6b4f66687d79694628be1a7b1f1d281c3b5b28d80c57ef7bf775c621f4c73d11c07f065eeffcce4dc1f760062f056b1397872a4691355fb3e27c4db8b1981ed57a628653915789d80990d5eb5089549c4f9d2f82c760bfcc5084a65cf29d731e7e0815445b7f1847c24120fbb3bf3783e12734343e162daabeb7d17df1f3b17d376813394a48881d78a441715e217726e68a92fe8633a50c5dc82cf997842b19b2bd5c8c4db94be82f182eade97707b2f3237ef9f29c2f6fc2d766b09e98de82f1f37e73c5b15bfc2183bd6f7a45238b27993c27bc8d3329c9691d7bdbfdb7ddd3f4a698c8bd82c2bca08c98e795e7038004f63055f25ec8d7223964eab697cc38b3f773d9467de941ece044d9202479acd9a5e4d44e863f36b73924963d41cd5bda1cd85db9e722494b7db95ad89fb8a1667fd9e3f2d19f58fbaddf99c9c5d1ae975da47c40fda78ae3c3b0b3d8240539302805b732ccbef14bce915ffc3d5a29c9a7cc2ccf8718657953b716ea20411c3a321e605e3f3bcf232bc56f37feec43f8ce3f65f0949853f9d73b011581a20b33925ac3e75412025be32e35dc18270ba979e15adb475452fb0fae267ab96a92f467c8af2a9416c29137f78e2d6f33cad002cad94de768c682f7759309beec9f8ef458b3ac56411131530887fda43f06537a6bb7193a56719709f7b9eb8213b19c493f66e84edb28578dc1b1906cf4ff2ee7ccfa00f5d8cbb9900a069f3a24aa56d6d09a5c49bbcdfeaf83d59d260f861c26a2be9d546179d159837250ce7e77e38ff72afb7cbed3aa1db6b0d1707fcfad373c82c54fa7349ec8815c4b225c331aa3cdcdbd393f0e0de678839742f8da909c442a49cffc967d401c81843c7e99b9739045f1266c009fcae0c87840836fc56b52ea0d66bc29e6cfda3f165aa88803cbc1e7c24fd117d4bd5c6a703bf49b40ef1422b13161cdb04a82baa4a8a1f9e03f795532a443252f9985b2e096a1d7817d1614461b52e969c0fe386306c6d90491eaaec47997799e51845e273a5294444a9f7f73b865b7c97f273fd0a2d3378048a4336d696c23a9db7eb3ffb35cd7c4e4627b9d0fa27fdc644169882a35b0829c4a9ea1087aa285008faa33aaf67a4c42bccb7d65d4ee349127e805a363843e951d4f56959453451208f1a46309fc4b0b894a48881d78a441715e217726e68a92fe8633a50c5dc82cf997842b19b2bd5c8c4db94be82f182eade97707b2f3237ef9f29c2f6fc2d766b09e98de82f1f37e73c5b15bfc2183bd6f7a45238b27993c27bc8d3329c9691d7bdbfdb7ddd3f4a692fdb7a30a8d04a77b0487efe77b91208055f25ec8d7223964eab697cc38b3f773d9467de941ece044d9202479acd9a5e4d44e863f36b73924963d41cd5bda1cd72498f77b76758ec579c96ee3db5363ced2138d7874d1e44d4b3a5767d0ecff53d585991dca793a9816588a9540b2c9e5932bf67e8b23d1157c1ea0f28c2f7f30f3d77e9475e5d42147036b79f15e26f44327eb899ee15ff8ec102f08e3720e8854ca95ee2faaed67ef0c925258ebe82ab929d3e597757cb6694bfa310ce7143a85582d91b9d6d4af007cb3cd2879d0b935ade8d05a6e3651bdd227541e5ed149edb8d104b2a134e590a72997940b34ae7847e3db938d6bd9cf0abbd5832e2c130086343032f54001b89b34d0f734a1e68d13371bd6c5d6484d518366f7e901e95f69de7c1ca95aca2374909371e90162a14e7a2a0090ee5a1453a776701a76e72afb7cbed3aa1db6b0d1707fcfad3737f5bdd93ce144615791bc06922b89697873638c964f69ae455ecc2ca837051ed0dbe82442a20e935af9bcab9dece90c367cdec2b63fa60c64dc70bfc8e772e8fc081ca0aa8b54c9b9c1f57970eb5aa5f938c7c0b2e11e082d28a3a46628ea2eb0ea9d23bed4548c7c41d520603f6724ba4f9286c5f88616871fa111ef1807ee3e8500db72c570ad7269a5bf8c0cf89952dc8813f6efc5e91ddef20ac7a067a7f9ea912d9120799ee9669c604cdfd9409d1d8c71f54308805302bac272a2758c298be41a52dc4da65c970a0d97f07a64bda4d98bf1ca7ababe1fa940cc155d4f144fa6ad7e799f6e22ae9530f312cabf14aee36a8f32f02167c869dc24dcc85c07b1713278d583ace2c0c7427229a46dd0039faf0f15888777435716fb866bc59d42cf5a56da6907aaf33a7491dd4e5ecd04aa17595b8034a0a64203e848ebe735058282050b552adf2dc144e8c51b0eea81781e5f3456a6cbd246e3df8f6b97a1964bebb2172f4676b7ff974513576c4af00c8c7d73f94cb1d8c3d53ee7aacf16306c2a077cbb023bbd0cf33d11df46d898b7c45259f83341829347657b4afc06c5c64082bf2c332a7d70a7d4da241043b5abc1158ccf6127629c52e7ffac422e30926caa53c7d2510e96964bd393370b0fbaeede7480de1c9ee6fff41fa16b86c4e73780210a88e866f1e86f7e2131073122fba34e6fc638cc689296f0cf8215e7c380826090dbfbb7ec567e458effd970a8abc2830f98f18b7cb04adff138dcc51e3efbee911df1055d38ee32303bd1843320dc8b0bb98092757054728afaddc823b8c5df24bef51989a4129529548672672428a97b210e1762e482462b84d86e31ca12102794767aaab0763e1ee6dcbc2d13530525f864e0f948de576a9ce7de71f57a6ae56a8465d9f72251f7ab145354dfd9537f8604f347870d5937b261577fb2688bcb2b041c28309fc0ab8bb07c5a754589319364be173c4f4c82431040898ab10a49ae940f401a09bf1640cc03ed9957f32ffb0be4d82f39e8f40345cca8a1315212353637c43a9b6bc039c6e6a61287f46b5136e2aecc36795ec184c0ef456063ecfc3950bac59535e71dd5e888e1d11539726e4f7ecb0a50452a57bab9ab6c58bf9aef877ce7404e8dc5741d1058d3e57cb6e2c60fe58422782808f378b92a8bb3fcefd4811cdcd0b11b5a2c93c6fd69f1c196578e93ced87b724f843d2c2452499425d6ea62b3fa8d426c088a050411b68942cccbaefde61723adf2798031b77f17989aef2ba873b7db8d18c1383b6db0d614bac90aa05e13c4a6bd793bbb61cde4314da3b48dc19e3fae9d406ef40285b4441632a21d5bc9c06a78f4657a22eb13f267b1b1c038f259c70ef3bb72489811cc7d96330f7bbc73db0e125f508b899f8746f83fc0ff344db3bc6761615a85d7400e63cddb367230e8bba6a356e80a67a6fe663c3e9244504f1ca6ed928ad07cc21fcbf94b7afa0f8566f1f010d1c7dda5b8f19f8a4ad4908bbfadfc95afa09a91bfd0806e5c354615da3b61a7ff21ae44ac477fc0b650717915c778f03f26efec57a81b7e75fc53103b5fc352c513a1b749ef14770cb1f31c2ccf8718657953b716ea20411c3a3213466bc5b3286e4fc98b75309e7e945705ca3601ddffe369ff2f2a2c3fda7f139bd7aaa9d898ca9c54c5fb0dd152a14e2518034c1a8da2d76c193bf02a70a30fe5a49221cd837478643eee798a15de15012ed97766bc34d242c7a26e5e4949f39301ed3e3ba7f538da3ce2670e98a0734bc2f83717ec26d22dff5082678ef9a04675993bd05af9f6a5116fcf3e49a35517ede362dea3b024933b6f20d8499f0b1a8495f5fae1fee223eea7d31f9f6a3814c5798c906631f2fc693fcde08dd975045354dfd9537f8604f347870d5937b264685077f256fa5baf9cd5f9fd54f2c0cd944b32617cbf5239358daac9a6fd45d7d0b735da3ed071e19aa87babfb6720c0272ea483b5cdb0284ec9f9a69d5bbfb0a6b52c6bbc0e3e09b22db0744d677bae716788da3abbf09de81d5d95c02da277a7ef11247db15222e8b05f59f509ec4c371b44042beb4dc55b5dbc777401fcd20b96ff0e981bebc4828ebecc20446f4fa228f1771b9e4d68057147b56e919ea6082eb610bf37400f18364a1ffe9307f0dcf99e1f35acfa44083a4207e02f3dfb8e7a73c5559ec3e6d0bc4e0ea328c8bc3dbda047b47743bae7fce6e1678e84aeb93b9fc5cdad9490e55dbe47e87c56e9b7d9be5d9ab4ee8b28681320896cba3cb5ea7e4a160371c19ef3e8d5fadb0048e330988b10f466d59368d04aca5ad8d75a7a2437d7e990696f9b7dc4cd90fe91b9bea304d9b9e7b5b575b98435549c2d849e5c2b8b14bba8f0971aedb9ebc4873efbec6f5d6d1ce6c7ba9105ae86ebce42110995cd23758bf5c34403733bbeb82233abedbd89bec77619d6e3cb0fe167460e0e21121413bb7005b2b40629a6bc66d833285d080c4ac5d24dd5a2fd0e9a8ffc6d634509a58e92a5baa7da7f17a9012093971a2af6ceb4bbfb44b851545ccd3d37f7eeba9976bb809017376fd0fdb818eafa446ca081e822ae1e376495b488f72d3fb8b7e271afff0b2f2ee9ab5fba149515a15300524f9abf53399cea29e735f6dc84109550d1c4f208632b4f1db0699acf1930e7eb154609cd06df1b33b172cbb5b0eac98823bc767e21049b136266651442ad863c2cc4b342220ca3a6c5ace4656ad33e86b5a7f377b44c770de6e2769607d11c1f01657acd53211c6f6ad1a2257b8b4f50a2e8577eedb1ab909f5745d1d1e337e5b32a0f43ff30001c521249a7e9b4c1547fc4f534e3560af73b3b6ad6e3844723f25bdb42b8d3196640b56a38688968aa984b6d2701083466ad0e482dc08892019a3cfc7f8b4e22179bf3e11d6609e5a1da8e0e1ea48b50dd3bd888641a2889ea2fdc6b66ce28a36466d3cc9661da08183958e5427d7bfda5b06b60571a8c278d6bf485450fbba84c4fee9d06306668c5ad8da43f0f06d1a1e39110e96170c8bcc34c68da174a8f7363858d3dd9c66e88021d5941f21dcd71e1cadc20d3f8461c3016ec83040748a190381d78889152c24fde1650a25cc6834a66a1ec554399bacf05a9f267ee4cb6665420aa6e9c2f7c0a60e67c3f878d045042a0ba5b1f0859edaa536696dfab3d038e484dc52725aa5897d38d652db4e5691d680033d19f350961ee1bd8e7f369212ad5a9550ec73eefe4a0be226c1099c7e48db7cb4e6e48428a626fcad258c4b69c9d07a963b3b4e9e037db43ce2d70052cedc3abaf41acfd3a47493a25b5bf4e753333b7469ca5f1e806a0a826f14bde8ae27445a651f75254679619d7d115a487636f58fb425cd213e1ac87fe6ee88d4e8b72fa7b9f3d9badd0c0ac954b495cb45a19fc654ace40fae4eed768ed9f7987a35ff46f5ca6a04b92510c0c704d66b1de65b998ffbe3a385f7b0e2887bf6b650821d475d73e606ffb8058ef94ce20344e3aff806c449447020aa82f2d9fe8abd00c7b2d3af7b6396f33b088a77cf67a915714fefd721523445fb4716634fd08eaf8faca12215c8113048e00c5d30b9763c4a06a26f8ca7a0c603fd743ac0fa86945dc3cefcb5c9338065dfd2bc736249627b4ddd5f3ff18c39c2cafddc67212e1a8b43901fbc8363e1aae1c3962f7400ff349ff1205e4ea9746f9ba424ced15adee14c60e08e644f77802028f0f7dc2e003d256f78420067acc74c5150f2c57ab7d7df2b90fa665eeb1a5215c9a0f726eb0a797358bcee2d3425af67353c4a82a4c382105f9160a45dbe5945900ce6740913722e23003bb3b8d78386507241320dec04ab17fcadcec6170f5b3d1044f24f3bb11a196bb5138dd04cf585d3bd888641a2889ea2fdc6b66ce28a363921d225183fd75f9a830f930f5cecfa64f6f2e073d2b34e7784ac1dc353c5fa8735566d3b34124bad7854fa0a40b2de1664e3e41c3913888d623bc854e58685d27f72967e7e93fde139ba2e58c72381ec8d35e9cbb26171499605441870bc5c112b82eb8376a13fafff92e16eedb3addea7a81806ab1df54e9eabc026482b2733b2820b4707ca2108d6ada48ad5efc9c296f7b0bddc409d8e3b50d5616dc95347c797e59bf5fc8f0d7f4d778ee9b49191a8c9e6c2413db8837f548d44b9d81d37e6f03da2450358c9f6a69e37b7e95491a94a0c3a08cf082a714ae1bc0fbe42acfbb93d4ea6d4057c2306ba0e3dd099635699155e65717b3571b21ecb3ace1bebba31fa99bdd0728b9b133541d38d3925d142100a4a601c3f150738db5934c2e9da8384928685895c34fa7eeb9160da85268d3ac6fc9e444d860948521e7736bde8ae27445a651f75254679619d7d11c0ebe4119e47e3769d446894e9ee8c3bd4279962e441cadbd75a9817e1b62bc0c8328ac740973bce3b59a3f22cbe4971d2f94717b78d984ebe650d56da0e9c932a9d3e9722704e8d18dbf520f6b2b7a56ab5b2372189ff5baa1e007b78438747b0931d3b1465cd8fdf756cdcaff20fce684e8c4063b053125b404205ac060e1584e55f18e36e5798ac5ec60c8fa712003873f120663c1b4995363605800e4dd25188eb05a52709bcab0d288be439b08cf2de9d25393091153841ca08f17e905238b9f0d9cf3fe87af04f5ec7f90ce5da2d27c3f8aeeecf81b943b06f42f8aeac0704ec0db5af9a2404d0f9a66aff5ac0abe22902d4d15f8433ac361a3cc48033bbbf3ae1ca4ffffccd027fb9ffa963125a2f0c20bf0a02341361ba39845933795bcf974ee4105eda4c7bf49c28f361643848ff1fd44b86e26cfa8decb55a4f93713bb64e064ad1b4d9ed9cb346104697954c8aae1c05cf130755e92a0eec5a51c6bab6f0c49eedfbc98348a6fbf181cf39e5b0281e1a707fc14cf23ccdd3b9b5e3f5a3a569db4a328c19dc36c3a97d97a7e7b14943444dd0614d1dc977258c5115e75fc4005c3c5f6ad0a4ec0a410fd0ec8d35e9cbb26171499605441870bc5c112b82eb8376a13fafff92e16eedb3adfba2267f3a1a411bf62ad00ddab1949180c57ef7bf775c621f4c73d11c07f065eeffcce4dc1f760062f056b1397872a4691355fb3e27c4db8b1981ed57a628653915789d80990d5eb5089549c4f9d2f82c760bfcc5084a65cf29d731e7e0815445b7f1847c24120fbb3bf3783e127343a809185b64d19e9cb7ddba53e46dfcb494a48881d78a441715e217726e68a92fa7f5d21193fdeda227a9fb79c4fd4598c4db94be82f182eade97707b2f3237ef9f29c2f6fc2d766b09e98de82f1f37e73c5b15bfc2183bd6f7a45238b27993c27bc8d3329c9691d7bdbfdb7ddd3f4a6982af074da9690ec666f257801fa2468fc474f112880b307d9c44400ea5768c02dbdf3da9104002ec059d4c1ea9908cdb532d80ce332f1bfb77b0ec11716d97d2e888bd43e644eb779ca4abf1f3dfa9df11478171e59df5eee71387ba1b19b39bf0044dcd3df59dc0b225b3dbf19bcbfc4a8bf0c65aab0f207164164770b8948e208c1b8c767d07fd7093cf9eb511b9f5d146ad1a1924e5fc11819b547756bb6e2558efba4ecbc91dd9df8f506d0187f474b7ebb34e2a307683a535a7d2759ba77ec35fd6ebf69f6f3dcc4042b4b222140fafc1d252f8b2e7054d64325e030010e44653996159c75abcc658ee8639f01a72019915428c967ca13f492eaf6b79367c6fff8eb2747e6a194bb354d8b180ab154d8c15f457138b92d7bf7a2ce7d22340692db3b4e702dd243ee00d085127adf0d0cc57a3c7aef3e515d3d4f5e7aebeed2138d7874d1e44d4b3a5767d0ecff579ef7d188b31c6ae5293bc872b674aced82946c69daf05aaba656401e82f77ac31e4a711cfbc4d53052145419d63664a8735566d3b34124bad7854fa0a40b2de97423cb0aa8aaede6ab012f344b91d994fae9069bf746e220067dcaa7f49241ea0b5e62659fc145d55c39dc50a1d8470d89687a419f8a9c4e2a4c610917f85cba662b8a2659786f5dbbc42fc19413c1c2a32bef62955b7238e081283547dcd8d4dd1c887ec66e6d8c9f467c6f10a9857f6e60cf67adbc5754be73cb2d91d55942977ae66a30dc3b22030e32c45a17668eaf7dfab49b22678897a96eb37aec6f8ec0370775c1c629df83289f00a85330f66d1737f731ab3a6f5c8ee8f8151ad25b81a5e11fcd1fce0b2a16b9aa96be5da265bb1352f383fb235b37baff944fdc2ce4794a27610bc536f95eb13f1d5fdf00a710b3151b61b052e42283f71352893245afa22cdeec807bf0efece9ab828ebfead2a365d30d8d14c69a5ce07523d51578d86d942495ab3ea81230f228b09d1baba20da3267871fc82402a658fc491a7e2ae599e200f7d3706e4c25bb67af900d6061574f60610acaa991a5d2de35185b34d2dfdfff32a72f2989f57167c872b78f7a207557d0478225150863fb123fa85c44ceacab72841e33719d6fbd40e13299642a99aea81e87f796e1d6b41505647c8e1b72f9e1856ae4238f7c9519c14e95b5e1884724666447853428eefaf042c188b77fccd72eb44edee060d836ffc9e8bf4e95d5f6fd2c2b9cd852f2ede486c6faabd8fab2a29bc3ce13d0bae89515b5bd64cc670461fdb5f946780c26c7813ace8e4b162806be11430d9b113ccdba4926968efbc0ebf608a8ea5bd162060962d82e1fa4672871157a694690b8288b6dcbdc6a083d60a3f68aaeda130258dae54d60ffe8c9bc59c81e458269e6bc72afb7cbed3aa1db6b0d1707fcfad37394bee374bdaad0fd7aa84bbb67285184ed22bcec2e19bf9713db1b3cc0a2c38be3f5a3a569db4a328c19dc36c3a97d97bdaec852158064c6634ba577cacb913b92fb784a51f731bf66cc4f75b159eb47ed61c88c6740dfcc100814d45e1bbc8256e00c3b9e96bc86d3d2d761f71b30c9519e47e1109edaa6f2097c84ff58279ee237b9e8781d0b6c0e8bbd65b90af9648472289f8e2742ab6d511b219dfa5cb200718208a48c5626f161e3c210bea15842d3dd2bb42e20180ad9d571db79237f994d3b3bdf075a74e3d5ef77ff5659780a16c59ccc928c963766ab4c2819aadbf407325ce3c38728a2518bf6c9152da8302bda284c38c846ea65a49c9b5896ecbedf57ae54ba78ef15662bef1d254075f541a08569e761ab7f6ec915d9799aa5f7c70067706d8ac0d7e5865d341635c2e3d896a03a645f0b718249c1eee0fa0c273f0fd60f04548054df716a6acd227495695c19e237bb693e838f9c7b1f3c5d0401d86ecaf5d8a5df5fedc0a01c165dd0276e3be465f8455a126d47685effca7ba822ccf89b3ea6fd8a5a45fe8fd2d2b516383c7125456682094d4d62b001d003b5fc352c513a1b749ef14770cb1f31c2ccf8718657953b716ea20411c3a32110e217106d6895486d9849c16479b52bf65f0949853f9d73b011581a20b3392540c0e4a916e14fc64c52dfa6a8c8fe7c7d7595113d93cc682c099176f53dc4168af2a9416c29137f78e2d6f33cad002cad94de768c682f7759309beec9f8ef458b3ac56411131530887fda43f06537a6331c3a61e0261948cbaecd445bb30f73f66e84edb28578dc1b1906cf4ff2ee7ccfa00f5d8cbb9900a069f3a24aa56d6dd8fc66254c72d88218bf32779424e8b440f4cdf1cf4cd0e40efdc0d55cf1e43326cddce71a8f002cba203ec58650e200121968c7dd95874c3b274600093e15641f0601192d88bb491a87bae596092b81d9f7af1af4fdaeb650708bbe20db7b489174970ab554f1eb7005be0a30b28f135f809c3d3ad7882bd0f2c407b6e4eb082a6ca18a7fafc38d1ecdcf3dd8dddeaa6e6a61287f46b5136e2aecc36795ec184c0ef456063ecfc3950bac59535e71dde3efdb1f075b86914c6f4084cedcd7fe1a9c6777f7046a846e01eb967baf9ee3ef4c99023b91e812b2f7e53e949695a3c088a050411b68942cccbaefde61723a8e91241ac5c64cecdf2caa472d63966c4dd20389eb4788699f33e2300b26f3ef5363c5773e93a5c3569363b139f4d0b5d27ac7dc173e036610532378a8e26d8594a48881d78a441715e217726e68a92f660617d238dffafd46db4a589cc2a9dec4db94be82f182eade97707b2f3237ef9f29c2f6fc2d766b09e98de82f1f37e73c5b15bfc2183bd6f7a45238b27993c27bc8d3329c9691d7bdbfdb7ddd3f4a692fdb7a30a8d04a77b0487efe77b91208b61f77241fb866ae1355f716229f552c3d9467de941ece044d9202479acd9a5e5995fb2fb94f4a2f7d81ea32c3a31d813d933e4b9e2c69c499f1d77349ece09299d17998288306105038fd97ebddbb6612471ccb6c700b8e975f23438d99e1135932bf67e8b23d1157c1ea0f28c2f7f34f616911bf8739406dd7a2fede00b53644327eb899ee15ff8ec102f08e3720e8854ca95ee2faaed67ef0c925258ebe82ab929d3e597757cb6694bfa310ce7143a85582d91b9d6d4af007cb3cd2879d0b935ade8d05a6e3651bdd227541e5ed149edb8d104b2a134e590a72997940b34afc42c5e63eb2e880844add5d9916f48030086343032f54001b89b34d0f734a1e68d13371bd6c5d6484d518366f7e901eb3ec9ab9cdbe52d03ae17b1a532fa9465bd65808f6985f19eb8a7b31300827ac72afb7cbed3aa1db6b0d1707fcfad3731f6e4708fe97878d5f540d64dee7afb159b1cb3cdda9f2c9341b74fccec90bc20bda53f77cbed7263214ba709b621a3165332148f866eed5315fa27d5607e667c3b7f95433e8275824e931bee61fc8744fae9069bf746e220067dcaa7f49241ea0b5e62659fc145d55c39dc50a1d8470ca97f6c6929bbcf31ff8c30b36766688c49d79968de1ca3661a14d54896a7892d23a108af06caa989e842240bd19353b24e7c89e30b00eacf7182505397c3f238186a0bcceefec1c28b891bb0b5666c2f7773e8114c0f83d7be9a8d1dccf19bedbadc89430d650930e3012d20cdc95262bb5b250a37537444fa93b406b59c257ba77fe6a39e2d32579ed4f1eaacca9e2deada9bf44d82c357aa8820041f1d9c2099d7aba906c454f4bbdc1b2e1f5896fed5c234c229814f9a31a7957f334f25b0a42fb3902bd4e51e75eead0fa96323be3d896a03a645f0b718249c1eee0fa0c3d579d489e51533f13ed458ef07a6c1de8f5573af220a806a7ef87fe32a877aaa589e66204501c667ecfd7f9f42d1eb9f7dba3bb3f97f7eadd85ce05124426cf263192e0cd72480b46b1310b986809302f628eb674c14fdfa51cb81cd859ee8d'
// console.log(u(data_1))// 请求加密测试
function d(e) {var t = l.encrypt(e, "30062AFC48C0E7B5B0918851C0445A37");return t
}// 外面改成 ' '  里面不能改成单引号,里面改成单引号,就不是json字符串了
// data_2 = '{"applyType":1,"year":2025,"buyerName":"","code":"","areaCode":"","status":"","distributor":"","enterpriseId":"","factoryNumber":"","machineCode":"","purchaseDateStart":"","purchaseDateEnd":"","pageNum":2,"pageSize":15}'
// console.log(d(data_2))//方式一
function r(e) {var t = s(e);return t
}function h(e) {var t = JSON.parse(e), n = Object.keys(t).sort(), i = n.map((function (e) {var n = t[e];if (n) {var i = "", c = encodeURIComponent(e);// return i = "object" === Object(a["a"])(n) ? JSON.stringify(n) : n,//     "".concat(c, "=").concat(i)// 前端的逗号操作符返回最后一个表达式的结果  所以可以直接替换return  "".concat(c, "=").concat(i)}}));i = i.filter((function (e) {return void 0 !== e && null !== e && "" !== e}));var c = i.join("&");return c
}function p(e) {var t, n = Date.now();return e ? (e = JSON.parse(u(e.parameter)),e.timestamp = n,e = JSON.stringify(e),t = h(e),t += "&key=HD7232D2AAAKA@978D8723H211?IER&6",{sign: d(r(t).toLocaleUpperCase()),timestamp: d(n.toString()),source: "ZRCSL7V0JIRK1PHY"}) : (e = e || {},e.timestamp = n,e = JSON.stringify(e),t = h(e),t += "&key=HD7232D2AAAKA@978D8723H211?IER&6",{sign: d(r(t).toLocaleUpperCase()),timestamp: d(n.toString()),source: "ZRCSL7V0JIRK1PHY"})
}var s = sm.sm3;dict = {"parameter": "41a69732cb266f361a31837c0916648bb8291635c087e530d1a25683d1160ee6265dcefe370b55d7e6ac9aca916fd2136f93e8f4248b1bda1f084d3d281ef4c558c2386e83cbef7944b0cd502dac9fd4ded0caf3a0cb7f2a9dd1907d1e576b5d33b825d1dcfce86ad6f94db52e8f3603d3bd888641a2889ea2fdc6b66ce28a36fd06b8dab3ce2b23a291932e42192719ce2c68f7dff16888924b7c383b33663c74c74a194438fc847eed16c0e16a3667954f332d0418d865537f467f329fe9a1bb98f9d3d4bcb55c384304a8a62bba72f7e663f5b8c725b71304213cab17de23"
}
console.log(p(dict))

 2.2、JS代码中的逗号操作符

i = "object" === Object(a["a"])(n) ? JSON.stringify(n) : n,
"".concat(c, "=").concat(i)

这里涉及到 JavaScript 的运算符优先级 和 逗号操作符 的特性。

逗号操作符的特性

在 JavaScript 中,逗号操作符 会按顺序执行多个表达式,但只返回最后一个表达式的结果。

let result = (表达式1, 表达式2, 表达式3);
// 执行顺序:表达式1 → 表达式2 → 表达式3
// 返回结果:表达式3的值

你的代码分析

i = "object" === Object(a["a"])(n) ? JSON.stringify(n) : n,
"".concat(c, "=").concat(i)

这实际上是一个 逗号操作符 表达式,包含两个子表达式:

第一个表达式(赋值):

i = "object" === Object(a["a"])(n) ? JSON.stringify(n) : n

  • 执行三元运算

  • 将结果赋值给变量 i

  • 这个表达式的结果是赋值后的 i 值

第二个表达式(字符串拼接):

"".concat(c, "=").concat(i)

  • 拼接字符串

  • 这个表达式的结果是最终的参数字符串

为什么执行后面的操作?

因为 逗号操作符返回最后一个表达式的结果,所以整个语句的结果是第二个表达式的结果

等价代码写法

// 你的代码相当于// 等价一
// 先执行赋值
let i = "object" === Object(a["a"])(n) ? JSON.stringify(n) : n;// 然后执行并返回拼接结果
"".concat(c, "=").concat(i);// 等价二
const result = (i = "object" === Object(a["a"])(n) ? JSON.stringify(n) : n,`${c}=${i}`
);
// result 包含最终的参数字符串

运算符优先级说明

优先级从高到低:

  1. 三元运算符 ? :

  2. 赋值运算符 =

  3. 逗号操作符 ,

所以你的代码被解析为:

(i = (三元运算结果)), (字符串拼接操作)

总结

  • 逗号操作符 按顺序执行所有表达式

  • 但只返回 最后一个表达式 的结果

  • 前面的表达式通常用于 副作用(如赋值)

  • 这是一种简洁但可能降低可读性的写法

http://www.dtcms.com/a/390927.html

相关文章:

  • 计算机网络————第二章 物理层
  • uniapp usb调试鸿蒙一直连接不上。
  • MySQL独立表空间:优缺点与最佳实践
  • 直播预告 | P4 One正式发布:让创新协作更简单、更安全、更可靠
  • Zookeeper脑裂是什么原因导致的?
  • APK360加固与“脱壳”:移动应用安全的攻与防
  • langchain-routerchain
  • 第四章:VSCode编辑器使用介绍
  • Problem: lab-week3- exercise03 Selection sort
  • Vue 事件总线 主流的一些npm包推荐
  • 总线协议如何支持总线错误条件?
  • N-156基于springboot,vue小区物业管理系统
  • 物理心理学 (Psychophysics) - 阈值 (Threshold) 测量方法 - 人因工程笔记2
  • 从 “数据采集” 到 “性能跃迁”:Simcenter LMS 如何用振动噪声试验,激活高端装备核心竞争力?
  • 【STL vector的全面指南】基础操作与底层实现<1>
  • 微服务-基础知识(CAP、BASE)
  • 存储卷清理策略在vps环境磁盘空间维护的操作指南
  • Day46 ARM硬件体系 从计算机架构、处理器类型、指令集到内核寄存器与SoC总线结构
  • 【MySQL】从视图到用户和权限管理
  • 栈与队列:核心差异与应用场景
  • 【Hadoop】ZooKeeper:分布式系统的协调核心与一致性保障
  • AWS 全球机房延迟对比 区域选型经验分享
  • 免费插件分享 |Scene Switcher Pro
  • Vue前端开发工具有哪些?常用Vue开发工具推荐、Vue前端开发工具对比与最佳实践分享
  • 信道管理模块实现
  • Java 网络原理(一)--- 自定义协议,UDP协议和TCP协议
  • 键盘失灵 键盘不好使问题解决(更新到 Windows 11后 )
  • 远程控制操作中,如何开启游戏键盘及3D鼠标?移动端设置教程分享
  • C 语言宏函数进阶:逗号表达式与 GNU 拓展的妙用
  • 币安加密货币API接口文档