基礎入門-算法解密散列對稱非對稱字典碰撞前后端逆向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.pswp.cn/news/894940.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/894940.shtml
英文地址,請注明出處:http://en.pswp.cn/news/894940.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Qt修仙之路2-1 煉丹初成

widget.cpp #include "widget.h" #include<QDebug> //實現槽函數 void Widget::login1() {QString userusername_input->text();QString passpassword_input->text();//如果不勾選無法登入if(!check->isChecked()){qDebug()<<"xxx"&…

【R語言】環境空間

一、環境空間的特點 環境空間是一種特殊類型的變量&#xff0c;它可以像其它變量一樣被分配和操作&#xff0c;還可以以參數的形式傳遞給函數。 R語言中環境空間具有如下3個特點&#xff1a; 1、對象名稱唯一性 此特點指的是在不同的環境空間中可以有同名的變量出現&#x…

【redis】緩存設計規范

本文是 Redis 鍵值設計的 14 個核心規范與最佳實踐&#xff0c;按重要程度分層說明&#xff1a; 一、通用數據類型選擇 這里我們先給出常規的選擇路徑圖。 以下是對每個步驟的分析&#xff1a; 是否需要排序&#xff1f;&#xff1a; zset&#xff08;有序集合&#xff09;用…

2021 年 9 月青少年軟編等考 C 語言五級真題解析

目錄 T1. 問題求解思路分析T2. 抓牛思路分析T3. 交易市場思路分析T4. 泳池思路分析T1. 問題求解 給定一個正整數 N N N,求最小的 M M M 滿足比 N N N 大且 M M M 與 N N N 的二進制表示中有相同數目的 1 1 1。 舉個例子,假如給定 N N N 為 78 78 78,二進制表示為 …

Windows 中學習Docker環境準備2、Docker Desktop中安裝ubuntu

Windows 中學習Docker環境準備1、Win11安裝Docker Desktop Windows 中學習Docker環境準備2、Docker Desktop中安裝ubuntu Windows 中學習Docker環境準備3、在Ubuntu中安裝Docker 需要更多Docker學習視頻和資料&#xff0c;請文末聯系 一、安裝 Docker Desktop 下載 Docker…

LabVIEW2025中文版軟件安裝包、工具包、安裝教程下載

下載鏈接&#xff1a;LabVIEW及工具包大全-三易電子工作室http://blog.eeecontrol.com/labview6666 《LabVIEW2025安裝圖文教程》 1、解壓后&#xff0c;雙擊install.exe安裝 2、選中“我接受上述2條許可協議”&#xff0c;點擊下一步 3、點擊下一步&#xff0c;安裝NI Packa…

PHP ODBC:深入探索數據庫連接與交互技術

PHP ODBC:深入探索數據庫連接與交互技術 引言 PHP作為一種廣泛使用的服務器端腳本語言,在Web開發中扮演著重要角色。在數據處理方面,PHP與數據庫的交互是其核心功能之一。ODBC(Open Database Connectivity)作為一種標準數據庫訪問接口,允許PHP應用程序與各種數據庫系統…

AUTOSAR汽車電子嵌入式編程精講300篇-基于FPGA的CAN FD汽車總線數據交互系統設計

目錄 前言 汽車總線以及發展趨勢 汽車總線技術 汽車總線發展趨勢 CAN FD總線國內外研究現狀 2 系統方案及CAN FD協議分析 2.1系統控制方案設計 2.2 CAN FD總線幀結構分析 2.2.1數據幀分析 2.2.2遠程幀分析 2.2.3過載幀分析 2.2.4錯誤幀分析 2.2.5幀間隔分析 2.3位…

BUU17 [RoarCTF 2019]Easy Calc1

自用 源代碼 $(#calc).submit(function(){$.ajax({url:"calc.php?num"encodeURIComponent($("#content").val()),type:GET,success:function(data){$("#result").html(<div class"alert alert-success"><strong>答案:&l…

5. k8s二進制集群之ETCD集群部署

下載etcd安裝包創建etcd配置文件準備證書文件和etcd存儲目錄ETCD證書文件安裝(分別對應指定節點)創建證書服務的配置文件啟動etcd集群驗證etcd集群狀態繼續上一篇文章《k8s二進制集群之ETCD集群證書生成》下面介紹一下etcd證書生成配置。 下載etcd安裝包 https://github.com…

Java并發編程筆記

Java并發基礎知識補全 啟動 啟動線程的方式只有&#xff1a; 1、X extends Thread;&#xff0c;然后X.start 2、X implements Runnable&#xff1b;然后交給Thread運行 線程的狀態 Java中線程的狀態分為6種&#xff1a; 1. 初始(NEW)&#xff1a;新創建了一個線程對象&…

使用多模態大語言模型進行深度學習的圖像、文本和語音數據增強

在過去的五年里&#xff0c;研究方向已從傳統的機器學習&#xff08;ML&#xff09;和深度學習&#xff08;DL&#xff09;方法轉向利用大語言模型&#xff08;LLMs&#xff09;&#xff0c;包括多模態方法&#xff0c;用于數據增強&#xff0c;以提高泛化能力&#xff0c;并在…

Windows Docker筆記-Docker拉取鏡像

通過在前面的章節《安裝docker》中&#xff0c;了解并安裝成功了Docker&#xff0c;本章講述如何使用Docker拉取鏡像。 使用Docker&#xff0c;主要是想要創建并運行Docker容器&#xff0c;而容器又要根據Docker鏡像來創建&#xff0c;那么首當其沖&#xff0c;必須要先有一個…

YOLOv11-ultralytics-8.3.67部分代碼閱讀筆記-autobatch.py

autobatch.py ultralytics\utils\autobatch.py 目錄 autobatch.py 1.所需的庫和模塊 2.def check_train_batch_size(model, imgsz640, ampTrue, batch-1, max_num_obj1): 3.def autobatch(model, imgsz640, fraction0.60, batch_sizeDEFAULT_CFG.batch, max_num_obj1): …

【文件上傳、秒傳、分片上傳、斷點續傳、重傳】

文章目錄 獲取文件對象文件上傳&#xff08;秒傳、分片上傳、斷點續傳、重傳&#xff09;優化 獲取文件對象 input標簽的onchange方法接收到的參數就是用戶上傳的所有文件 <html lang"en"><head><title>文件上傳</title><style>#inp…

Office/WPS接入DS等多個AI工具,開啟辦公新模式!

在現代職場中&#xff0c;Office辦公套件已成為工作和學習的必備工具&#xff0c;其功能強大但復雜&#xff0c;熟練掌握需要系統的學習。為了簡化操作&#xff0c;使每個人都能輕松使用各種功能&#xff0c;市場上涌現出各類辦公插件。這些插件不僅提升了用戶體驗&#xff0c;…

FPGA的IP核接口引腳含義-快解

疑問 手冊繁瑣&#xff0c;怎樣快速了解IP核各輸入輸出接口引腳的含義。 答疑 不慌不慌&#xff0c;手冊確實比較詳細但繁瑣&#xff0c;如何快速知曉該部分信息&#xff0c;濤tao道長給你們說&#xff0c;簡單得很&#xff0c;一般新入門的道友有所不知&#xff0c;往往后面…

GnuTLS: 在 pull 函數中出錯。 無法建立 SSL 連接。

提示信息 [root@localhost ~]# wget https://download.docker.com/linux/static/stable/x86_64/docker-27.5.1.tgz --2025-02-06 12:45:34-- https://download.docker.com/linux/static/stable/x86_64/docker-27.5.1.tgz 正在解析主機 download.docker.com (download.docker.…

Python3+Request+Pytest+Allure+Jenkins 接口自動化測試[手動寫的和AI寫的對比]

我手動寫的參考 總篇:Python3+Request+Pytest+Allure+Jenkins接口自動化框架設計思路_jenkins python3+request-CSDN博客 https://blog.csdn.net/fen_fen/article/details/144269072 下面是AI寫的:Python3+Request+Pytest+Allure+Jenkins 接口自動化測試[AI文章框架] 在軟…

告別手動操作!用Ansible user模塊高效管理 Linux賬戶

在企業運維環境中&#xff0c;服務器的用戶管理是一項基礎但非常重要的任務。比如&#xff0c;當有新員工加入時&#xff0c;我們需要在多臺服務器上為他們創建賬戶并分配合適的權限。而當員工離職或崗位發生變化時&#xff0c;我們也需要迅速禁用或刪除他們的賬戶&#xff0c;…