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

基础入门-算法解密散列对称非对称字典碰撞前后端逆向MD5AESDESRSA

知识点:

0、算法类型-单向散列&对称性&非对称性
1、算法识别加解密-MD5&AES&DES&RSA
2、解密条件寻找-逻辑特征&源码中&JS分析

应用场景:
1、发送数据的时候自动将数据加密发送(只需加密即可)
安全测试思路:我们需要将我们的Payload也要加密发送过去,这样才符合正常的业务逻辑,所以我们就只需要调用应用的JS加密逻辑进行提交发送测试即可!
2、比如要得到数据的明文(必须要拿到解密算法)
由于各种算法的解密条件不一,密钥,偏移量,私钥等不一定能拿到。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一、演示案例-算法识别加解密-MD5&AES&DES&RSA

1、算法加密-概念&分类&类型

单向散列加密 -MD5

单向散列加密算法的优点有(以MD5为例):
方便存储,损耗低:加密/加密对于性能的损耗微乎其微。
单向散列加密的缺点就是存在暴力破解的可能性,最好通过加盐值的方式提高安全性,此外可能存在散列冲突。我们都知道MD5加密也是可以破解的。
常见的单向散列加密算法有:
MD5 SHA MAC CRC
解密条件:密文即可,采用碰撞解密,几率看明文复杂程度

对称加密 -AES

对称加密优点是算法公开、计算量小、加密速度快、加密效率高。
缺点是发送方和接收方必须商定好密钥,然后使双方都能保存好密钥,密钥管理成为双方的负担。
常见的对称加密算法有:
DES AES RC4
解密条件:密文及密钥偏移量加密模式(固定的3-4种),采用逆向算法解密,条件成立即可解密成功

非对称加密 -RSA

非对称加密的优点是与对称加密相比,安全性更好,加解密需要不同的密钥,公钥和私钥都可进行相互的加解密。
缺点是加密和解密花费时间长、速度慢,只适合对少量数据进行加密。
常见的非对称加密算法:
RSA RSA2 PKCS
解密条件:密文和公钥或私钥,采用逆向算法解密,条件成立即可解密成功

2、加密解密-识别特征&解密条件

MD5密文特点

1、由数字“0-9”和字母“a-f”所组成的字符串
2、固定的位数 16 和 32位
解密需求:密文即可,但复杂明文可能解不出

BASE64编码特点

0、大小写区分,通过数字和字母的组合
1、一般情况下密文尾部都会有两个等号,明文很少的时候则没有
2、明文越长密文越长,一般不会出现"/“”+"在密文中

AES、DES密文特点

同BASE64基本类似,但一般会出现"/“和”+"在密文中,明文越长,数据越长。
解密需求:密文,加密模式,加密Key,偏移量,条件满足才可解出

RSA密文特点

特征同AES,DES相似,但是长度较长,哪怕明文数据少,加密后的数据也长
解密需求:密文,公钥或私钥即可解出

3、其他密文特点

30余种加密编码类型的密文特征分析(建议收藏)

https://mp.weixin.qq.com/s?__biz=MzAwNDcxMjI2MA==&mid=2247484455&idx=1&sn=e1b4324ddcf7d6123be30d9a5613e17b&chksm=9b26f60cac517f1a920cf3b73b3212a645aeef78882c47957b9f3c2135cb7ce051c73fe77bb2&mpshare=1&scene=23&srcid=1111auAYWmr1N0NAs9Wp2hGz&sharer_sharetime=1605145141579&sharer_shareid=5051b3eddbbe2cb698aedf9452370026#rd

CTF中常见密码题解密网站总结(建议收藏)

https://blog.csdn.net/qq_41638851/article/details/100526839

CTF密码学常见加密解密总结(建议收藏)

https://blog.csdn.net/qq_40837276/article/details/83080460

二、演示案例-解密条件-有源码找逻辑&无源码JS逆向

安全测试中:

1、密文-有源码直接看源码分析算法(后端必须要有源码才能彻底知道)

X3.2-md5&salt-密码存储(后端处理)

在这里插入图片描述

DZ对应代码段-/uc_server/model/user.php

function add_user() {
$password = md5(md5($password).$salt);
    }

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<?PHP
$h = 'd7192407bb4bfc83d28f374b6812fbcd';
$hash=md5(md5('123456').'3946d5');
if($h==$hash){
echo 'ok';
}else{
echo 'no';
}
?>

在这里插入图片描述

<?php
function reverse_md5_hash_with_salt($final_hash, $salt, $dictionary_file) {
    // 打开字典文件
    $file = fopen($dictionary_file, "r");
    if (!$file) {
        die("无法打开字典文件!");
    }
    // 遍历字典文件中的每一行(即每一个密码)
    while (($password = fgets($file)) !== false) {
        // 去除密码两侧的空白字符(包括换行符)
        $password = trim($password);
        // 第一次 MD5 加密密码
        $md5_hash = md5($password);
        // 拼接 md5($password) 和 salt
        $salted_hash = $md5_hash . $salt;
        // 第二次 MD5 加密
        $final_attempt = md5($salted_hash);
        // 检查是否匹配
        if ($final_attempt === $final_hash) {
            fclose($file);
            return $password;  // 找到匹配的密码
        }
    }
    // 如果没有找到匹配的密码
    fclose($file);
    return null;
}
// 给定的目标加密值和盐值
$final_hash = "125648dbf16531ab7e6b2f8ec8003ea7";  // 目标 MD5 值
$salt = "3e3790";  // 盐值
// 字典文件路径
$dictionary_file = "weaksauce.txt";  // 字典文件路径
// 调用函数进行密码破解
$password = reverse_md5_hash_with_salt($final_hash, $salt, $dictionary_file);
// 输出结果
if ($password) {
    echo "破解成功,密码是: $password";
} else {
    echo "密码破解失败";
}
?>

在这里插入图片描述
在这里插入图片描述

X3.5-hash-密码存储(后端处理)

在这里插入图片描述
DZ对应代码段-/uc_server/model/user.php

function add_user() {
$salt = '';
$password = $this->generate_password($password);
    }
function generate_password($password) {
$algo = $this->get_passwordalgo();
$options = $this->get_passwordoptions();
$hash = password_hash($password, $algo, $options);
}

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

<?PHP
$hash = '$2y$10$KA.7VYVheqod8F3X65tWjO3ZXfozNA2fC4oIZoDSu/TbfgKmiw7xO';
if (password_verify('123456', $hash)) {
    echo 'ok';
} else {
    echo 'error';
}
?>

在这里插入图片描述
在这里插入图片描述

<?PHP
$hash = '$2y$10$PDACNCRyZzcsknF8zvL4yu7YHIPQTN8F635PxQeXSB8QxxDZSXrd.';
$dictionary_file = "weaksauce.txt";
$file = fopen($dictionary_file, "r");
    if (!$file) {
        die("无法打开字典文件!");
    }
    // 遍历字典文件中的每一行(即每一个密码)
    while (($password = fgets($file)) !== false) {
        // 去除密码两侧的空白字符(包括换行符)
        $password = trim($password);
        echo $password."<br>";
        
        if (password_verify($password, $hash)) {
            echo 'ok';
        } else {
            echo 'error';
        } 
    }
?>

在这里插入图片描述
在这里插入图片描述

2、密文-没有源码1、猜识别 2、看前端JS(加密逻辑是不是在前端)

博客登录-zblog(前端处理)-数据通讯

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<script src="script/md5.js" type="text/javascript"></script>
$("#btnPost").click(function(){
    var strPassWord=$("#edtPassWord").val();
$("form").attr("action","cmd.php?act=verify");
$("#password").val(MD5(strPassWord));

在这里插入图片描述

console.log-(MD5("123456"));

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

某通快递登录-混合加密(前端处理)-数据通讯

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<script src="/Scripts/Vip/Login.js?v=20241202154949"></script>
function Login() {
logindata.UserName = encodeURI(encrypt.encrypt(numMobile));
logindata.Mobile = encodeURI(encrypt.encrypt(numMobile));;
logindata.Password = encodeURI(encrypt.encrypt(numPassword));
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

var encrypt = new JSEncrypt();
encodeURI(encrypt.encrypt('13554365566'));

在这里插入图片描述

3、密文

解密网站:http://tool.chacuo.net/cryptdes
明确以下三种加密算法加解密条件

对称AES加解密

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对称DES加解密

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

非对称RSA加解密

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://www.kler.cn/a/536022.html

相关文章:

  • 1-kafka服务端之延时操作前传--时间轮
  • PostgreSql 函数异常处理
  • el-table中的某个字段最多显示两行,超出部分显示“...详情”,怎么办
  • 【容器技术01】使用 busybox 构建 Mini Linux FS
  • Verilog基础(一):基础元素
  • 每日Attention学习18——Grouped Attention Gate
  • C++:代码常见规范1
  • 七。自定义数据集 使用tensorflow框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测
  • Mac: docker安装以后报错Command not found: docker
  • ctf网络安全大赛python ctf网络安全大赛
  • 本文主要详细讲解ArcGIS中的线、多线段和多边形的结构关系。
  • Kafka 可靠性探究—副本刨析
  • 关于maven的java面试题汇总
  • 1 Java 基础面试题(上)
  • 物联网实训室解决方案(2025年最新版)
  • BUU26 [极客大挑战 2019]HardSQL1
  • Electron学习笔记,用node程序备份数据库(2)
  • Github 2025-02-07Java开源项目日报 Top9
  • 二叉树实现(学习记录)
  • 神经辐射场(NeRF):从2D图像到3D场景的革命性重建
  • Java面试题——事务
  • 【论文翻译】DeepSeek-V3论文翻译——DeepSeek-V3 Technical Report——第一部分:引言与模型架构
  • windows10环境下的Deepseek本地部署及接口调用
  • 网络安全威胁框架与入侵分析模型概述
  • 【PostgreSQL内核学习 —— (WindowAgg(三))】
  • golang命令大全12--命令速查表