网站建设电话销售不被挂断,天元建设集团有限公司济南第六建筑分公司,做网站的作品思路及步骤,ciid中国室内设计官网高校教务系统密码加密逻辑及JS逆向 本文将介绍高校教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的过程。通过本文#xff0c;你将了解到密码加密的基本概念、常用加密算法以及如何通过逆向分析来破解密码。 本文仅供交流学习#xff0c;勿用于非法用途。 一、密码加…高校教务系统密码加密逻辑及JS逆向 本文将介绍高校教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的过程。通过本文你将了解到密码加密的基本概念、常用加密算法以及如何通过逆向分析来破解密码。 本文仅供交流学习勿用于非法用途。 一、密码加密基本概念
密码加密是一种保护信息安全的技术手段它通过将明文原始信息转换为密文加密后的信息以防止未经授权的访问和篡改。常见的密码加密算法有MD5、SHA-1、SHA-256等。
1.1 加密过程
加密过程通常包括以下步骤
密钥扩展将密钥扩展为多个轮值每个轮值都与明文的一部分有关。初始轮值生成将扩展后的密钥与轮常数进行某种运算生成第一轮加密的密文。多轮迭代对密文进行多轮迭代操作每轮操作都包括非线性函数、模运算和轮常数的变换。最终密文经过多轮迭代后得到最终的密文。
1.2 解密过程
解密过程与加密过程相反通过反向操作来恢复原始明文。通常需要知道加密时使用的密钥和算法。
二、高校教务系统密码加密逻辑分析
2.1 抓包
我们首先打开西安科技大学的教务系统的登录页面我们直接百度搜索这个学校的教务系统就可以看到点进去之后我们可以看到只有学号和密码有的高校会有验证码或者有的高校是错误一次密码会验证验证码。 我们打开开发者工具尝试登录抓包网页会返回这样的数据接口。我们用户名输入12345,密码输入12345你也可以输入其他的。 2.2 分析加密参数
我们接下来就是来分析这个密码是怎么加密的。我们全局搜索password。定位到加密的位置。我们这里只有这个密码参数被加密了。 我们可以看到这里把encrypt的值赋给了password。我们只要找到encrypt这个值就可以了。
三、JS逆向分析方法
逆向分析是指从已知的加密文本或程序中还原出原始信息的过程。在本例中我们将使用JavaScript编写一个简单的逆向分析工具用于逆向高校教务系统的密码。
环境使用
python 3.9pycharmnode
我们全局搜索encrypt我们就很容易定位到一个函数我们不难发现其加密原理。 key CryptoJS.enc.Utf8.parse(8a9386555b3ecbff0c509e02deb2feb1.substr(0,16));
iv CryptoJS.enc.Utf8.parse(8a9386555b3ecbff0c509e02deb2feb1.substr(0,16));
var encrypted CryptoJS.AES.encrypt(str, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.ZeroPadding
});
return encrypted;
这段代码是使用JavaScript加密库CryptoJS来对一个字符串进行AES加密。
代码实现
var CryptoJS require(crypto-js)var __token__ 2cd3c46b571239f3bed7041af9527031
password encrypt(12345).toString();function encrypt(str) {
key CryptoJS.enc.Utf8.parse(__token__.substr(0,16));
iv CryptoJS.enc.Utf8.parse(__token__.substr(0,16));
var encrypted CryptoJS.AES.encrypt(str, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.ZeroPadding
});
return encrypted;
}
console.log(password) 这段代码的主要功能是使用CryptoJS库对一个字符串进行AES加密。现在我将为您逐行解释 var CryptoJS require(crypto-js): 这一行导入了名为crypto-js的Node.js模块这个模块提供了JavaScript实现的加密算法。var __token__ 2cd3c46b571239f3bed7041af9527031: 这里定义了一个全局变量__token__并赋值为一个固定的字符串。这个字符串被用作AES加密的密钥。password encrypt(12345).toString();: 这一行调用了上面定义的encrypt函数将12345作为参数传递进去并将返回的加密结果转换为字符串然后赋值给变量password。function encrypt(str) { ... }: 这里定义了一个名为encrypt的函数这个函数接受一个字符串参数str。key CryptoJS.enc.Utf8.parse(__token__.substr(0,16));: 在encrypt函数内部使用CryptoJS的Utf8解析方式将__token__的前16个字符解析为一个密钥key。iv CryptoJS.enc.Utf8.parse(__token__.substr(0,16));: 同样地使用CryptoJS的Utf8解析方式将__token__的前16个字符解析为一个初始化向量iv。var encrypted CryptoJS.AES.encrypt(str, key, { ... });: 使用之前解析的密钥key和初始化向量iv对参数str进行AES加密并将加密结果赋值给变量encrypted。return encrypted;: 返回加密后的结果。console.log(password): 在控制台输出password的值也就是我们前面加密后的结果。 需要注意的是这里使用了CBC模式和ZeroPadding填充方式进行AES加密并且密钥和初始化向量都是从__token__这个字符串中取出的前16个字符。 我这里直接把代码给大家大家感兴趣可以先尝试直接去写可以和我写的做比较。今天的js代码就比较简单了。
实现效果 大家可以看到加密的结果和网页一模一样这个token就是网页返回的值我们拿到token就能加密密码从而就能实现模拟登录。
安装crypto-js库
使用npm或yarn来安装crypto-js如果提示缺少crypto-js库大家可以安装一下
npm install crypto-js
四、总结
本文介绍了高校教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的方法。通过学习这些知识你可以更好地理解密码加密技术的原理并掌握一定的逆向分析技巧。请注意逆向分析可能涉及到法律问题请在合法范围内进行研究和实践。
五、累计更新
争取到到底早日更新30所高校到目前已经累计更新了16所高校后面可能会一个星期一更不会这么频繁了。大家可以在评论区留言。前期更的可能会多一点有的学校教务系统都没有加密我这里就不写了还有部分学校的教务系统已经和我之前写的是一样的我也不重复赘述了。
往期作品可以查看专栏 全国高校教务系统登录页面JS分析_爱吃饼干的小白鼠的博客-CSDN博客