国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用md5collgen進(jìn)行MD5碰撞實(shí)驗(yàn)

這篇具有很好參考價(jià)值的文章主要介紹了使用md5collgen進(jìn)行MD5碰撞實(shí)驗(yàn)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

題目一

題目1:可在ubuntu主機(jī)上預(yù)先安裝md5collgen,題目為“生成兩個(gè)MD5哈希值一致但是文件內(nèi)容不同的文件”。
所謂“文件內(nèi)容不同但卻有相同的哈希值”就是 碰撞。
在這個(gè)題目中,我們將生成兩個(gè)具有相同MD5哈希值的不同文件。這兩個(gè)文件的開始部分需要相同,即它們共享相同的前綴。我們可以使用md5collgen程序?qū)崿F(xiàn)這一點(diǎn),它允許我們提供具有任意內(nèi)容的前綴文件。

md5collgen的原理

image.png
MD5將輸入的數(shù)據(jù)按照64字節(jié)一組(M1-Mn)進(jìn)行切分,然后在這些分組上進(jìn)行迭代地計(jì)算。其核心是壓縮函數(shù),其接受兩個(gè)輸入,分別是64字節(jié)的數(shù)據(jù)分組和前一次迭代的輸出,壓縮函數(shù)compression function會(huì)輸出128位的IHV(intermediate hash value),這個(gè)輸出將在下一次迭代時(shí)參與運(yùn)算。如果當(dāng)前的迭代是最后一次,IHV就是最終的hash值。而第一次迭代IHV0的IHV的輸入是固定值。

安裝md5collgen

先從github下載md5collgen工具包源碼,將其上傳至ubuntu中(官網(wǎng)下載好像沒makefile文件)
image.png
然后進(jìn)行解壓 unzip
image.png
sudo apt install build-essential
image.png
sudo apt install libboost-all-dev
image.png
然后執(zhí)行make命,安裝好md5collgen工具
image.png

利用md5collgen生成文件

在md5collgen-master下新建一個(gè)文本文件 prefix.txt(作為相同前綴的文件)
image.png
執(zhí)行命令:

./md5collgen -p prefix.txt -o out1.bin out2.bin

image.png
目錄下生成了對應(yīng)的兩個(gè)文件
image.png

diff out1.bin out2.bin
md5sum out1.bin
md5sum out2.bin

image.png
文件不一樣,但哈希值一致。

hexdump -C out1.bin
hexdump -C out2.bin

在圖形界面也可以看出,兩個(gè)文件不一致
image.png
經(jīng)觀察可得兩文件的前綴相同,文件內(nèi)容有不同。通過分析md5collgen的原理可以明白形成這一現(xiàn)象原因。從prifix.txt中取前綴,若前綴不是64的倍數(shù),則用零填充。md5collgen為兩個(gè)輸出文件生成128字節(jié)的內(nèi)容,這兩個(gè)輸出文件就是在這128字節(jié)中存在部分差異。

題目二

新建一個(gè)文件source_code.c,用于存放源代碼(并給定數(shù)組的內(nèi)容)
image.png
執(zhí)行編譯:
image.png
編譯后的結(jié)果:
image.png
在二進(jìn)制文件中找到xyz數(shù)組的位置:

hexdump -C source_code

image.png
image.png
我們可以選擇前 12480 個(gè)字節(jié)作為前綴prefix文件,中間12480到12608作為中間的128字節(jié)文件,后面第12609個(gè)字節(jié)到文件結(jié)束作為后綴suffix文件。

head -c 12480 source_code > prefix
tail -c +12609 source_code > suffix

image.png
前綴prefix文件:(部分)
image.png
后綴suffix文件:(部分)
image.png
用前綴prefix文件上運(yùn)行md5collgen 來生成兩個(gè)具有相同MD5散列值的輸出(即數(shù)組內(nèi)容相同):

./md5collgen -p task2_prefix -o task2_out1.bin task2_out2.bin

image.png

diff task2_out1.bin task2_out2.bin
md5sum task2_out1.bin
md5sum task2_out2.bin

image.png
可視化:
image.png
文件內(nèi)容不同
image.png
哈希值相同文章來源地址http://www.zghlxwxcb.cn/news/detail-820111.html

到了這里,關(guān)于使用md5collgen進(jìn)行MD5碰撞實(shí)驗(yàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • postman 請求參數(shù)進(jìn)行md5加密

    1.在代碼片段中,使用 JavaScript 將需要加密的參數(shù)拼接成一個(gè)字符串,例如 2.安裝 CryptoJS 庫。在 Postman 的 \\\"Pre-request Script\\\" 或 \\\"Tests\\\" 中,使用以下命令安裝 CryptoJS: 3.在代碼片段中,使用 CryptoJS 對拼接后的字符串進(jìn)行 MD5 加密,轉(zhuǎn)化為小寫字符串,賦值給請求變量。例如:

    2024年02月05日
    瀏覽(26)
  • uniapp使用md5加密 js使用md5加密

    uniapp使用md5加密 js使用md5加密

    文章的初衷 最近項(xiàng)目中使用了md5加密,為了方便還不明白怎么使用的朋友參考查閱,當(dāng)然也為了方便博主再次使用所寫 md5加密說明 可在不同平臺(tái)使用 因?yàn)槭褂梅椒ㄊ莏s方法去調(diào)用的所以不局限于某個(gè)平臺(tái) 我這里使用的方式是登錄的時(shí)候進(jìn)行加密,具體其他的使用方式,朋友們自

    2024年02月07日
    瀏覽(81)
  • linux:md5命令以及md5的使用場景

    MD5廣泛用于數(shù)據(jù)完整性校驗(yàn)和密碼存儲(chǔ),它是一種不可逆的加密算法,目前無法解密。它會(huì)逐位對文件的內(nèi)容進(jìn)行校驗(yàn)。是文件的內(nèi)容,與文件名無關(guān),也就是文件內(nèi)容相同,其md5值相同。 在數(shù)據(jù)完整性校驗(yàn)中,MD5可用于驗(yàn)證數(shù)據(jù)的完整性。例如,在下載文件后,可以對下載

    2024年02月06日
    瀏覽(20)
  • Java使用MD5加鹽對密碼進(jìn)行加密處理,附注冊和登錄加密解密處理

    Java使用MD5加鹽對密碼進(jìn)行加密處理,附注冊和登錄加密解密處理

    在開發(fā)的時(shí)候,有一些敏感信息是不能直接通過明白直接保存到數(shù)據(jù)庫的。最經(jīng)典的就是密碼了。如果直接把密碼以明文的形式入庫,不僅會(huì)泄露用戶的隱私,對系統(tǒng)也是極其的不厲,這樣做是非常危險(xiǎn)的。 那么我們就需要對這些銘文進(jìn)行加密。 現(xiàn)在市場是加密的方式已經(jīng)

    2024年02月02日
    瀏覽(23)
  • 在前端對登錄密碼進(jìn)行加密,md5+鹽值

    在前端對登錄密碼進(jìn)行加密,md5+鹽值

    場景:前端制定規(guī)則賬號(hào)密碼,后端不進(jìn)行參與,完全就是前端進(jìn)行校驗(yàn) 缺點(diǎn):對于現(xiàn)在網(wǎng)絡(luò)發(fā)達(dá)的時(shí)代,大部分人隨便攻擊你的網(wǎng)站就可以看到你的賬號(hào)密碼這樣就可以輕松進(jìn)入你的網(wǎng)站、不安全。 優(yōu)點(diǎn):基本沒有,除非就是臨時(shí)搭建 不需要后端 當(dāng)然這是我開發(fā)時(shí)候的場

    2024年02月09日
    瀏覽(92)
  • Apifox&Postman請求參數(shù)進(jìn)行SHA256/MD5加密

    Base64加密,代碼如下: Base64解密,代碼如下: MD5加密,代碼如下: SHA256加密,代碼如下

    2024年02月16日
    瀏覽(28)
  • 【MD5】什么是MD5?md5的簡要描述

    MD5:英文全稱是 Message-Digest Algorithm 5。 中文名為 消息摘要算法第五版。它是消息摘要算法,屬于 Hash 算法的一種。 正常情況下,它的結(jié)果是一個(gè) 長度為 32位 的 16進(jìn)制 的 字符串 。 也有一些地方會(huì)用到 16 位的 MD5的結(jié)果,它實(shí)際上是從 32位 字符串中取中間的第9位到第24位的

    2024年02月08日
    瀏覽(20)
  • PHP md5()函數(shù)詳解,PHP計(jì)算MD5,md5()繞過,md5()漏洞原理剖析

    「作者主頁」: 士別三日wyx 「作者簡介」: CSDN top100、阿里云博客專家、華為云享專家、網(wǎng)絡(luò)安全領(lǐng)域優(yōu)質(zhì)創(chuàng)作者 「推薦專欄」: 對網(wǎng)絡(luò)安全感興趣的小伙伴可以關(guān)注專欄《網(wǎng)絡(luò)安全入門到精通》 md5() 可以計(jì)算字符串的 「MD5散列值」 。 語法 參數(shù) $str :需要計(jì)算的字符串

    2024年02月06日
    瀏覽(24)
  • Java中MD5的使用

    在Java中,可以通過正則表達(dá)式來判斷一個(gè)字符串是否是MD5字符。MD5字符通常是32位長度的十六進(jìn)制字符串,因此可以使用如下的正則表達(dá)式進(jìn)行判斷: 文章中掘金

    2024年02月12日
    瀏覽(24)
  • vue3中使用md5

    vue3中使用md5

    推薦網(wǎng)站: MD5在線加密 - MD5加密工具 - MD5在線生成 MD5在線加密 https://md5jiami.bmcx.com/ ? ?推薦: vue3的md5如何使用以及導(dǎo)入_范閑~的博客-CSDN博客_vue3 md5 vue3的md5如何使用以及導(dǎo)入 https://blog.csdn.net/m0_60708088/article/details/125763415 默認(rèn)32位小寫 。 注意:md5()函數(shù)中的參數(shù)必須為字符串

    2024年02月11日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包