目标URL:全国建筑市场监管公共服务平台(四库一平台)

尝试爬取下列的目标信息,发现出现的都是加密的密文,然后尝试用python重构或者js调试的方法找到加密的地方来解密

爬虫:爬下目标信息

发现给列表给加密了:

搜索打断点

decrypt是一种解密的方式,尝试看看能不能寻找出来

JS调试

var crypto = require('crypto-js')// 直接把 d.a 替换成crypto,只要看见AES加密就可以尝试这种方法
function h(t) {var f = crypto.enc.Utf8.parse("jo8j9wGw%6HbxfFn");var m = crypto.enc.Utf8.parse("0123456789ABCDEF")var e = crypto.enc.Hex.parse(t), n = crypto.enc.Base64.stringify(e), a = crypto.AES.decrypt(n, f, {iv: m,mode: crypto.mode.CBC,padding: crypto.pad.Pkcs7}), r = a.toString(crypto.enc.Utf8);return r.toString()
}var t = '95780ba0943730051dccb5fe3918f9fecad83d6404f63e091618bcdedec6eb6dad5e1ea79d7600b68d9d997c76b232dd2c69817bd2f0c74c083b2aa15a5e3b55e9d89658c576a4e296008f5ea47d5f23ee12f7ff203a50a8195cbbfbbe66e03c4cc0582f493ae62f7d23795df6927c39368c9dc73801a076124040885c4624d03bd0a919d822d2f54a034c87b755dddff4b7e7cf6eb40c281338af3fc40edb52087377cef0e5fa219e9eba5d2288e89ceb1bf1d8b40ac96508a45c8ca4f43c402541694d758f148c833f7879052781d62a6a13ddf255fc4a6ecfdec61d3923dfed1ae607e93d3192d44bd791b9b430086cf9be62911cb51ac012909f6e44a7147a070126fe23b6e268af5ad8c5083bb66e45f128cabdcaf9babac00fdf691d5b7258be3e6ffca541391226c9ac621ee01af4d557be29ec4ad981d81826eea2d34e04bc07732b5fcef885eb34afba1ee24f95895cbcbdd27501ca27f6bf5db289d66918513545a1732e2ae65f2b686a2697ea3c908c383bf7704b0ec3af0e0f38d1040fd260de3257a808fa3665682365dfbea95949a7f91e5c31c5a7fdfed690afe0f82b7152a3fafa7233a452539f4b9af27123b6537b480c41781dc953c5c7d6eda158880857ee7541eee5954ebc80675d2e0c85c937c06d674916b093e90b46ac1bc526c3d832155590507db31714be5ec9d5278a7440862ae882fd9fa04d5a3d9353e6491f26e78a2c389a0d64531026230b73780db1611666509211f70c2847276559010494e0584360345aa6bad2d86d520f23755fa937338da84597763f309f519804e5e77b72796c0c27ec469b2b1fb81803dda612fc9cec9885c9b33c22356aa9fc13ac41f8ec967906fe401628630257520136297fb0f5fbc362de10f4ca46287ca6a2292827358b161fa6ddfbcf2a91d192048d875e02dab4b830e51b8fcc40ef5a603a6086dc4c63086ab0e437b89aa15530e598bf897c554621cc72b88b2d2483f6cd4718e561568e540908473e06163f8d1d928dbfbc3409251cdca536a63ad2a6167063d134838cbc4c78b107445708b74e6f5e5e83a897d3d95679eefd839e60ddca1cc64e4b3b2683c016968d6612f35e6fc9e97edba65fbddc4e4604577c8e220a228d8b4b57b4a86941785eff40b5b6b4032d004ad8fa29291567879d8e2341984b14c147f083d95102fa3df070391e22df80ad6773f884e6a92953d10f7cb429eb23cfcde7d23199fda46656bf1a36516148d534bcbe0a3b0153b59ea6bbaf7d0707cf80ad8e59fc1162cf31ca6ef3d05a3213c35c78459d0b2b3e2df6d3c81df054484c94a41a384c0d7cfa176a00a0a07d8fcb93b8df111bd8a1172db844713eee26ac5e7008b9553f6b3cbf96ffa7e6d983b610675c18372ee7b25cf059f7907494bec1d4c9f689aec3e9becc50c80b9f45a90ef3408910a1f7d3bd260ff6f2585e80950ad8c8bfdd70014e5d3849b8c5c3ffa12fa3699c9dfefa3911ed81d5581df8e7b5b04508f666f20fdc031e0ea3f0a1175441582d4e9992f5ae4f783eb42fbfdbee6f710eacd336701fca83c4152ff73f45bdf7d1bcbb0929ccb007ca12c46565cce6f3ea91c10a8ebfa67d878bb8efa56b144de87baf6f0d38268bd555486d60a63ad932f6ecf477ebe95c21cb1cd108201da1596a46223eaa3b0c3562c2737274d20437cdf3a06c64ef784928ca9b9b1e599bfacb3ec24abbfacbb320c57a69103f5c9724dc21b8ef48f68206cb09c574f41133dc3dd26ae65fb3397d84a08ec8bdcb7409beca904861d249a9c5926698235f6dea788c373571247aec7d2d551c833425b6af63869bac429f734af095039d1c858561d23ae23aa0a5cf3c21add9e4f4632d7e0f737213f73eede1796d5cce5ce4dba7d1f208aab283238f730fb6bc24e591bfbc168eacc5da44bfed39927a8aab69cb3a11af77e9aeae52824e63140d5cadb7df6eda4692cbd8dfaca0cd255902d164eb82fdd0bdeac78d3018b2c0eb26136d3a0095e2603e029f8a48fb6547df604c1dce2c4c3e63323efad2146b3f4c60fd5dcddad83d1f664648bd5d6ff0745f2736710e6222e8fee5ff33be42888e11a77e1950425f1f45316d1b30494a0d954cb5b561c3f00bce8ff226efd090a67d0a3a105a3e560ee734190e5857b30d40ccac0b98cdd890c5b84fbdfb047105555f37dd3c9c64892d2ebc5c66025b182db2b72c9125037bf0abb78f3cccabc84f4867a6ee365c02a528e4afcf16d1bdf358aa7d18aac67755ed9525671b768f5fe9ff6db9abdde0008c0b408670c48ba9b2d337bf1aafcdf1ec8dbf6928d446fd38b9faf7f6d980b4335f87d096122ff54c2b7c4054f759c66d67eef9382b75551a6d11b79956a8364e0281dcf315dce78ce8eeda37dbd4ceb22c0baf0c731b2056c98332064bc44bbc39437a0cadd9c8235cbc6312d823e6a62d70ce68467979b051a4b24024f8045cf30a77353c5f91e8ee547cdd1ff457e8f86f985196365690074b7e9ff3eb70fd0e7dcce0d2f1e9e7d03eae62b5727c2620cc571c00f8b6e22b53e0312ee9168301c1c35df14f50524cacf7f1a7731fc0b5a14fb262942c5c767340560325b672fa76203cb341627b2863bd703923e037d0e73dce13abb2f72d90dadf567d8e9246846992facffc75bd475d34a29ac629a79998c13c3166879a7d2519d81b69b9bdc415ab98b7a44f9662d8dda0c6d7a57521ecb14cac75e7b1d699adf44a5dd7ab5127f81b20d697c63cbde5bdd12e95745ce9096abfa58ee8f92920140d92b8673423011e16b426b892751fef48366352f29df16f06776107028080e7aa5912192341b83946b4a3758826797b18e13677c5582ca2d518277675ba67e7818aff42d7917c119a9be43e4654dc03ed785e892f06cf633d55607ed1f53e9e92f4fa3878f90a127f3ee26bfe235aa5b0ae5955d7fb73a9149852865a1f45ae7cd62c9122a65fa6b3a361eb0b686ba09d614c4002f0b14412f4e8175d4d0f42e53a37c5e11a6256dfc00ac99c66af3c69dfdb875806fc8d3c4926441469e2d2306df340b193d2476b51f26a43c7274be095771844521387fbf5075c42515962e7acc397ac4b0195610edbe236d2f54176f3475e5cbef3fad2460f93af9595cd5d9574d6dc09c3a5dec4fb8e28a69a5d05fd2d669364666169b32370d33de8e25b15ebfd224cdf093962f54fdde4c5fd0af8a91ff00809ad71d013238a130ea369d0b270589078eff9d47b6640c13c64c9787c3067cf23270c808d73f2e4bf5e74f1cbf1b0da3582da4fcf5d3d29e4b0760c7eb3deeee50b9bfb4c672c61376faed91c4f5a2748ed33362428518a890a6f5078de34018c92a96462aed99fd7990c5d76e4ba142d206c50794200675b1dd66e92705d7ce16118b8108bf55b43bea0003fd892554839f1e0ca49cb6af18b8502b045b4816b9d79d79798c653ed7b8e8cd7ee8044bb870a6fcd1b77d11882906bc6c897fa9a9edfe6a0eb45a2aaa45ce044859504e3c9907391b0f26c69bdad0c77f85d59f143ad54e8f73d30027e80713f2faef8ea3ade7a42808e1a29cdf0f44dd254304716f5dabafeea3115a6656f7e3a824381bca2debbaad7f0b0cf1dd44f7aa3570c2c999f67977fe9b896727da85d26416ebdbc9aaeb8e6a307f4220c79899524'console.log(h(t))

利用python尝试执行Js代码

tool.py

import execjs# 读取js代码
# with open('test.js', 'r', encoding='utf-8') as file_obj:
#     js_code = file_obj.read()
#
# # 1、编译js代码
# cjs = execjs.compile(js_code)
# # 2、执行js代码
# print(cjs.call('demo', 'world'))def get_js(file_name, func_name, *args):# print(*args)'''通过python执行js代码的方法:param file_name: js文件名字:param func_name: 要执行的函数名字:param *args: 方法传参(可以传入多个参数):return:'''# 读取js代码with open(file_name, 'r', encoding='utf-8') as file_obj:js_code = file_obj.read()# 1、编译js代码cjs = execjs.compile(js_code)# 2、执行js代码# print(cjs.call(func_name, func_args))return cjs.call(func_name, *args)if __name__ == '__main__':t = '95780ba0943730051dccb5fe3918f9fecad83d6404f63e091618bcdedec6eb6dad5e1ea79d7600b68d9d997c76b232dd2c69817bd2f0c74c083b2aa15a5e3b55e9d89658c576a4e296008f5ea47d5f23ee12f7ff203a50a8195cbbfbbe66e03c4cc0582f493ae62f7d23795df6927c39368c9dc73801a076124040885c4624d03bd0a919d822d2f54a034c87b755dddff4b7e7cf6eb40c281338af3fc40edb52087377cef0e5fa219e9eba5d2288e89ceb1bf1d8b40ac96508a45c8ca4f43c402541694d758f148c833f7879052781d62a6a13ddf255fc4a6ecfdec61d3923dfed1ae607e93d3192d44bd791b9b430086cf9be62911cb51ac012909f6e44a7147a070126fe23b6e268af5ad8c5083bb66e45f128cabdcaf9babac00fdf691d5b7258be3e6ffca541391226c9ac621ee01af4d557be29ec4ad981d81826eea2d34e04bc07732b5fcef885eb34afba1ee24f95895cbcbdd27501ca27f6bf5db289d66918513545a1732e2ae65f2b686a2697ea3c908c383bf7704b0ec3af0e0f38d1040fd260de3257a808fa3665682365dfbea95949a7f91e5c31c5a7fdfed690afe0f82b7152a3fafa7233a452539f4b9af27123b6537b480c41781dc953c5c7d6eda158880857ee7541eee5954ebc80675d2e0c85c937c06d674916b093e90b46ac1bc526c3d832155590507db31714be5ec9d5278a7440862ae882fd9fa04d5a3d9353e6491f26e78a2c389a0d64531026230b73780db1611666509211f70c2847276559010494e0584360345aa6bad2d86d520f23755fa937338da84597763f309f519804e5e77b72796c0c27ec469b2b1fb81803dda612fc9cec9885c9b33c22356aa9fc13ac41f8ec967906fe401628630257520136297fb0f5fbc362de10f4ca46287ca6a2292827358b161fa6ddfbcf2a91d192048d875e02dab4b830e51b8fcc40ef5a603a6086dc4c63086ab0e437b89aa15530e598bf897c554621cc72b88b2d2483f6cd4718e561568e540908473e06163f8d1d928dbfbc3409251cdca536a63ad2a6167063d134838cbc4c78b107445708b74e6f5e5e83a897d3d95679eefd839e60ddca1cc64e4b3b2683c016968d6612f35e6fc9e97edba65fbddc4e4604577c8e220a228d8b4b57b4a86941785eff40b5b6b4032d004ad8fa29291567879d8e2341984b14c147f083d95102fa3df070391e22df80ad6773f884e6a92953d10f7cb429eb23cfcde7d23199fda46656bf1a36516148d534bcbe0a3b0153b59ea6bbaf7d0707cf80ad8e59fc1162cf31ca6ef3d05a3213c35c78459d0b2b3e2df6d3c81df054484c94a41a384c0d7cfa176a00a0a07d8fcb93b8df111bd8a1172db844713eee26ac5e7008b9553f6b3cbf96ffa7e6d983b610675c18372ee7b25cf059f7907494bec1d4c9f689aec3e9becc50c80b9f45a90ef3408910a1f7d3bd260ff6f2585e80950ad8c8bfdd70014e5d3849b8c5c3ffa12fa3699c9dfefa3911ed81d5581df8e7b5b04508f666f20fdc031e0ea3f0a1175441582d4e9992f5ae4f783eb42fbfdbee6f710eacd336701fca83c4152ff73f45bdf7d1bcbb0929ccb007ca12c46565cce6f3ea91c10a8ebfa67d878bb8efa56b144de87baf6f0d38268bd555486d60a63ad932f6ecf477ebe95c21cb1cd108201da1596a46223eaa3b0c3562c2737274d20437cdf3a06c64ef784928ca9b9b1e599bfacb3ec24abbfacbb320c57a69103f5c9724dc21b8ef48f68206cb09c574f41133dc3dd26ae65fb3397d84a08ec8bdcb7409beca904861d249a9c5926698235f6dea788c373571247aec7d2d551c833425b6af63869bac429f734af095039d1c858561d23ae23aa0a5cf3c21add9e4f4632d7e0f737213f73eede1796d5cce5ce4dba7d1f208aab283238f730fb6bc24e591bfbc168eacc5da44bfed39927a8aab69cb3a11af77e9aeae52824e63140d5cadb7df6eda4692cbd8dfaca0cd255902d164eb82fdd0bdeac78d3018b2c0eb26136d3a0095e2603e029f8a48fb6547df604c1dce2c4c3e63323efad2146b3f4c60fd5dcddad83d1f664648bd5d6ff0745f2736710e6222e8fee5ff33be42888e11a77e1950425f1f45316d1b30494a0d954cb5b561c3f00bce8ff226efd090a67d0a3a105a3e560ee734190e5857b30d40ccac0b98cdd890c5b84fbdfb047105555f37dd3c9c64892d2ebc5c66025b182db2b72c9125037bf0abb78f3cccabc84f4867a6ee365c02a528e4afcf16d1bdf358aa7d18aac67755ed9525671b768f5fe9ff6db9abdde0008c0b408670c48ba9b2d337bf1aafcdf1ec8dbf6928d446fd38b9faf7f6d980b4335f87d096122ff54c2b7c4054f759c66d67eef9382b75551a6d11b79956a8364e0281dcf315dce78ce8eeda37dbd4ceb22c0baf0c731b2056c98332064bc44bbc39437a0cadd9c8235cbc6312d823e6a62d70ce68467979b051a4b24024f8045cf30a77353c5f91e8ee547cdd1ff457e8f86f985196365690074b7e9ff3eb70fd0e7dcce0d2f1e9e7d03eae62b5727c2620cc571c00f8b6e22b53e0312ee9168301c1c35df14f50524cacf7f1a7731fc0b5a14fb262942c5c767340560325b672fa76203cb341627b2863bd703923e037d0e73dce13abb2f72d90dadf567d8e9246846992facffc75bd475d34a29ac629a79998c13c3166879a7d2519d81b69b9bdc415ab98b7a44f9662d8dda0c6d7a57521ecb14cac75e7b1d699adf44a5dd7ab5127f81b20d697c63cbde5bdd12e95745ce9096abfa58ee8f92920140d92b8673423011e16b426b892751fef48366352f29df16f06776107028080e7aa5912192341b83946b4a3758826797b18e13677c5582ca2d518277675ba67e7818aff42d7917c119a9be43e4654dc03ed785e892f06cf633d55607ed1f53e9e92f4fa3878f90a127f3ee26bfe235aa5b0ae5955d7fb73a9149852865a1f45ae7cd62c9122a65fa6b3a361eb0b686ba09d614c4002f0b14412f4e8175d4d0f42e53a37c5e11a6256dfc00ac99c66af3c69dfdb875806fc8d3c4926441469e2d2306df340b193d2476b51f26a43c7274be095771844521387fbf5075c42515962e7acc397ac4b0195610edbe236d2f54176f3475e5cbef3fad2460f93af9595cd5d9574d6dc09c3a5dec4fb8e28a69a5d05fd2d669364666169b32370d33de8e25b15ebfd224cdf093962f54fdde4c5fd0af8a91ff00809ad71d013238a130ea369d0b270589078eff9d47b6640c13c64c9787c3067cf23270c808d73f2e4bf5e74f1cbf1b0da3582da4fcf5d3d29e4b0760c7eb3deeee50b9bfb4c672c61376faed91c4f5a2748ed33362428518a890a6f5078de34018c92a96462aed99fd7990c5d76e4ba142d206c50794200675b1dd66e92705d7ce16118b8108bf55b43bea0003fd892554839f1e0ca49cb6af18b8502b045b4816b9d79d79798c653ed7b8e8cd7ee8044bb870a6fcd1b77d11882906bc6c897fa9a9edfe6a0eb45a2aaa45ce044859504e3c9907391b0f26c69bdad0c77f85d59f143ad54e8f73d30027e80713f2faef8ea3ade7a42808e1a29cdf0f44dd254304716f5dabafeea3115a6656f7e3a824381bca2debbaad7f0b0cf1dd44f7aa3570c2c999f67977fe9b896727da85d26416ebdbc9aaeb8e6a307f4220c79899524'print(get_js('建筑市场JS.js', 'h', t))

然后,找到要爬取信息的url

最后 ,把密文爬下来进行解密

import requests
from tool import get_jsurl = 'http://jzsc.mohurd.gov.cn/api/webApi/asite/qualapt/aptData'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ''Chrome/98.0.4758.82 Safari/537.36 '
}response = requests.get(url,headers=headers)
# response为爬取的密文
data = get_js('建筑市场JS.js', 'h', response.text)print(data)

PS:

在用 gpython 执行 js 代码的时候 碰着 IndexError: list index out of range的解决方法:
  • 在python.exe同级目录下面找到Lib:里面有subprocess.py
  • 找到init里面的 encoding=
  • pass_fds=(), *, encoding='utf‐8', errors=None, text=None):

建筑市场案例(AES解密)相关推荐

  1. 行行查采集案例(AES解密)

    本文案例采集行行查网站的研究报告.城市精选.产业图谱等数据 网站链接:https://www.hanghangcha.com 本文内容仅供技术学习参考,如有侵权请联系作者删除. 文章目录 采集风险 解 ...

  2. AES解密类,解密案例 解决No matching distribution found for Crypto

    AES解密类 # 解密武器 class decrypt_AES:def __init__(self, encrypted_data):self.encrypted_data=encrypted_dat ...

  3. 建筑市场监管平台解密

    建筑市场监管平台解密 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 目标地址:aHR0cDovL2p6c2MubW9odX ...

  4. java aes解密算法_使用java实现AES算法的加解密(亲测可用)

    话不多说,直接上代码 import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto ...

  5. python多线程爬取m3u8视频(包含AES解密)

    python爬取m3u8视频(包含AES解密) 前情提要 部分代码摘录于某位大哥(写代码的时候收藏书签了的打算写博客的时候带上链接的,无奈手贱删除了chrome用户,所有的书签也没了,找到再补上),在 ...

  6. Python 爬虫 m3u8的下载及AES解密

    python爬虫 m3u8的下载及AES加密的解密 前言 2023.1.23更新 线程池版 完整代码 异步协程版 前言 这里与hxdm分享一篇关于m3u8视频流的爬取下载合并成mp4视频的方法,并且支 ...

  7. AES解密失败 WxMaCryptUtils.decrypt(sessionKey,encryptedData, iv)

    场景描述:小程序想接入微信步数. 目前以下参数都已经有值了: sessionKey.encryptedData.iv 调用微信工具来解密: WxMaCryptUtils.decrypt(session ...

  8. Base64解密算法、AES解密

    爬船讯网数据的时候发现其数据经过加密,一开始判断认为是Base64加密,后来发现是AES加密. 因为通过Base64解密发现,总是报错:UnicodeDecodeError: 'utf-8' code ...

  9. php aes解密中文,PHP AES加密解密算法

    //--------第四种AES加密/解密方案 CBC模式,128-bit-------- /* * 实现AES加密 * $str : 要加密的字符串 * $keys : 加密密钥 * $iv : 加 ...

  10. 微信开发-aes解密失败

    错误信息:解密微信回掉消息出现 aes解密失败 排查问题:  因为是微服务,客户收到消息会出现接受微信 会存在扫码有消息接受有,一会没有消息推送 于是排查问题 1.首先查看日志,具体看是什么问题,每台 ...

最新文章

  1. mysql查询枚举类型转换_zendframework获取数据库中枚举类enum的数据并将其转换成数组...
  2. 《机器人与数字人:基于MATLAB的建模与控制》——2.2节李群和李代数
  3. python画饼图-从零开始学Python可视化(五): 饼图及环形图
  4. 放弃 PowerPoint,改用 reveal.js
  5. bms中soh计算方式_BMS电池管理系统由浅入深全方位解析
  6. IOS 高级语法与设计模式5(5.3 协议的基本概念及用法)
  7. 微型计算机物理地址转换,微型计算机及接口技术2015年4月真题试题(04732)
  8. Spring Data JPA 从入门到精通~@Version处理乐观锁的问题
  9. 人工智能如何改变农业?这是五大类创业公司全图
  10. jstack分析CPU高的问题
  11. Linux下部署Java,Tomcat环境
  12. MySQL(20)-----数据库设计的常规步骤
  13. 软件质量模型详解————思维导图
  14. Python入门的学习心得
  15. Python -- 列表解析式习题:九九乘法表、ID号
  16. uni-app 多个视频同时播放问题(h5和app)及获取视频第一帧 亲测有用
  17. 关于linux下VNC服务的一些介绍(本文章是基于tigervnc)
  18. KITTI数据集-百度云盘
  19. important basic knowledge of SAS
  20. ORACLE R12 Workflow Mailer设置

热门文章

  1. 哈工大SCIR情感回复系统Babbling
  2. 戴文的Linux内核专题:04 安全
  3. 深度学习在安防领域的应用与实践
  4. HTML-input标签
  5. 40个比较实用的Windows系统命令
  6. Codeforces上几道神一般的数据结构题
  7. 操作系统笔记——进程管理
  8. 纸上谈兵(一)--对产品运营的初步认识
  9. jmeter接口测试教程
  10. 三十岁中年大叔放弃 40W 年薪从传统行业转行 Java,全依靠这份秘籍!