JS逆向---常见加解密算法总结

文章目录


前言

基本算法,我们可以理解为分为两类:常见的不可逆取盐(数据摘要)算法

盐,可以理解为数据摘要


声明
本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关。
本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除,请各位自觉遵守相关法律法规。


常见的不可逆取盐(数据摘要)算法

1.MD5加密(消息摘要算法)

MD5算法是消息摘要算法,也是单项散列算法,其作用是将一个任意长度的消息压缩成固定长度,该算法默认会产生一个128位的消息摘要,常用于验证消息完整性以及数字签名等。

特征

一般长度为16,32,40(不常见)

固定长度

加密后的值由1-9, a-f组成

测试网站: https://the-x.cn/zh-cn/hash/MessageDigestAlgorithm.aspx

2.sha系列(sha安全散列算法)

Sha系列算法,又叫做安全散列算法,其包括 sha-1,sha-256,sha-384,sha-512总共这四种,分别产生160/256/384/512位的散列值,该算法与MD4算法设计原理相同,但安全性更高一些。

特征

加密后的值由1-9, a-f组成

比较常见的有,MD5, sha1, sha256, sha512

衍生补充:HMAC---加上HMAC之后,也可以允许传入key值进行加密,多了一个密钥值

常见的对称加密算法

AES DES对称加密

DES全称为Data Encryption Standard ,即数据加密标准,是一种使用秘钥加密的算法,该加密算法是一种对称加密方式,其加密运算、解密运算需要使用的是同样的秘钥(一组字符串)即可。

特征

现在用的AES这个标准来替代原先的DES

AES和DES的区别:

加密后秘文长度的不同

  • DES加密后密文长度是8的整数倍
    AES加密后密文长度是16的整数倍

DES和AES切换只需要修改CrytoJS.AES<=>CryptoJS.DES

使用DES/AES进行数据交换时要求双方都拥有相同的私钥

DES算法的入口参数有三个:

  • Key、Data、Mode、padding
    Key: 7个字节共56位,是DES算法的工作秘钥
    Data: 为8字节64位,是要被加密或被解密的数据
    Mode: 为DES的工作方式
    padding: 为填充模式,如果加密后密文长度如果达不到指定整数倍(8字节、16字节),填充对应字符 。padding的赋值固定为CryptoJS.pad.Pkcs即可

相同点及其特征

  • 传入的key值, iv值长度都为16字节(也可能碰到4个32位(4字节)的整数值)
  • 加密模式特殊情况:一般加密模式为CBC加密模式(默认), ECB加密模式可不需要iv的值,并不影响最后的生成结果

特性:

相同数输入 = 相同输出

补充:

TEA算法(腾讯自己魔改的算法)

常见的非对称加密算法

RSA加密算法

非对称加密算法需要两个秘钥:

公开秘钥(publickey:简称公钥)

私有秘钥(privatekey:简称私钥)

公钥和私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密,因为加密和解密使用的是两个不同的秘钥,所以这种算法叫做非对称加密算法

特征:

  • setPublicKey关键字

SM2(国家加密算法)

SM2算法是我国自主知识产权的商业密码算法,是ECC的一种。

ECC是基于椭圆曲线方程 y = x^{3} + ax^{1} + b,SM通过指定系数a,b确定了唯一的一条曲线。简单理解就是ECC选取的椭圆曲线可以有很多个,而SM2只是选取了唯一的一条椭圆曲线。

特性:

相同数输入 != 相同输出

补充:

  • base64伪加密
    Base64是一种用64个字符(A--Z,a--z,0--9,+,/,=(用于补缺))来表示任意二进制数据的方法。base64是一种编码方式而不是加密算法。只是看上去像是加密而已。

写在最后:

本人写作水平有限,如有讲解不到位或者讲解错误的地方,还请各位大佬在评论区多多指教,共同进步.如有需要代码和讲解交流,可以加本人微信18847868809

相关推荐
实名上网宋凯宣8 小时前
Django
后端·python·django
如若1239 小时前
【论文复现】CoFailMed:从零复现医学图像分割的共享失败审计,含完整代码流程与科研绘图
人工智能·python
ZhengEnCi10 小时前
GPT-6 Astra 爆改 Qwen 权重真有那么神吗:权重空间编程 0.016% 参数的真相
算法·架构
罗西的思考10 小时前
【轻量化复刻大模型 / KIMI K3】KDA(Kimi Delta Attention):并行
人工智能·算法·机器学习
幸运小猿11 小时前
模拟慢上传-处理超时重试image 丢失线上问题
前端·javascript·html
砚底藏山河11 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
视觉小萌新11 小时前
AI Class 3 · Chapter 1:变量、字符串、list/dict、if/for(python学习-小白版-有经验可跳过)
python·学习·list
薛定谔的猫-菜鸟程序员12 小时前
软件架构设计师开发资料大全(从入门到精通)
后端·python·系统架构·flask·架构设计师
夜不会漫长12 小时前
C++:红黑树
数据结构·算法
AI备案指南-满满13 小时前
算法备案审核不通过,一般是什么原因?
java·人工智能·算法·大模型备案·算法备案·大模型登记