偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

為什么rar密碼不能被破解

安全 數(shù)據(jù)安全
對于同一個(gè)源文件來說,不進(jìn)行加密,壓縮完,其rar文件中的數(shù)據(jù)段是一模一樣的。但是如果對同一個(gè)源文件來說,即使使用同一個(gè)密碼,加密完rar文件中的數(shù)據(jù)段是不一樣的,這是由于加密的密鑰是依賴于一個(gè)Salt(8個(gè)字節(jié)的密鑰,用來加密時(shí)使用,存放在rar文件頭中里)。

一、Rar文件生成的流程。

Winrar加密文件時(shí),總的分兩個(gè)步驟:

1:先把源文件壓縮,壓成一段數(shù)據(jù)段。

2:再將壓縮完的數(shù)據(jù)段加密。

對于同一個(gè)源文件來說,不進(jìn)行加密,壓縮完,其rar文件中的數(shù)據(jù)段是一模一樣的。但是如果對同一個(gè)源文件來說,即使使用同一個(gè)密碼,加密完rar文件中的數(shù)據(jù)段是不一樣的,這是由于加密的密鑰是依賴于一個(gè)Salt(8個(gè)字節(jié)的密鑰,用來加密時(shí)使用,存放在rar文件頭中里),所以要解密rar加密文件關(guān)鍵在于數(shù)據(jù)解密這一步,那我們接下來研究一下如何加密的。

二、加密“壓縮完的數(shù)據(jù)段”的流程

1、獲取密鑰:

將明文的密碼與Salt一起,通過HASH算法,生成兩個(gè)16字節(jié)的密鑰。(一個(gè)是KEY(AES算法的參數(shù)),一個(gè)是initVector)

2、以Key和initVector來加密壓縮數(shù)據(jù):

這里,是一個(gè)循環(huán)加密的結(jié)構(gòu),每16字節(jié)作為一個(gè)塊,進(jìn)行加密(這可能正是為什么加密完的文件長度總為16倍數(shù)的原因)。加密采用AES算法(RAR采用的是AES的rijndael的標(biāo)準(zhǔn)應(yīng)用)。這里注意:AES加密前,有一個(gè)異或運(yùn)算,是先將每16字節(jié)塊與上一個(gè)16字節(jié)塊加密結(jié)果進(jìn)行異或,然后再進(jìn)行AES算法的。我用一個(gè)簡單的示意代碼看說明:

;===============================================

packblock[0]=packblock^initVector

encryptBlock[0]=AES(packblock[0])    ;(KEY為AES的密鑰)

for i=1 to 塊數(shù)量-1

packblock=packblock^encryptBlock[i-1]

encryptBlock=AES(packblock)  ??;(KEY為AES的密鑰)

next

;packblock表示壓縮完的每16字節(jié)數(shù)據(jù)

;encryptBlock表示加密完的每16字節(jié)數(shù)據(jù)

;===============================================

三、解密的過程

由于AES算法是對稱的,所以解密的過程,是加密過程的逆運(yùn)算。但解密時(shí)AES算法過程與加密所用的不一樣(是因?yàn)榻饷苓^程中由KEY生成的子密鑰表不一樣)。仍然需要我們將密碼輸入,與salt一起生成兩個(gè)16字節(jié)密鑰,KEY和initVector。

;===============================================

packblock[0]=AES1(encryptBlock[0])    ;(KEY為AES的密鑰)

packblock[0]=packblock^initVector

for i=1 to 塊數(shù)量-1

packblock=AES1(encryptBlock)    ;(KEY為AES的密鑰)

packblock=packblock^encryptBlock[i-1]

next

;===============================================

那判斷密碼是否正確的在什么地方呢?

解密的過程是解密后的數(shù)據(jù)塊進(jìn)行解壓縮,然后解成源文件,對該文件進(jìn)行CRC校驗(yàn),存在RAR文件中的源文件CRC校驗(yàn)碼比較,相同則密碼正確,不相同則密碼錯(cuò)誤。#p#

四、無法秒破的原因

從上面,我們了解了RAR文件的整體思路。地球人都知道,解密時(shí),肯定有個(gè)步驟是來判斷密碼的正確與否。而且,依據(jù)以往的經(jīng)驗(yàn),我們也許可以將某些判斷的點(diǎn)移動(dòng),那樣可以縮減破解的流程思路。那RAR的這一步在哪里?它把校驗(yàn)放在了最后的一步。如果要秒破,我們該怎么做泥?至少我認(rèn)為目前是不可能的。

我們從解密過程逆反過來看看:

1、CRC檢驗(yàn)這一塊修改跳轉(zhuǎn)?

根本毫無意義,因?yàn)樗呀?jīng)是最后一步了。你可以修改RAR文件頭的CRC值,你可以將它改得和你用任意密碼解壓出來的文件CRC值一樣,但你的文件根本就不是原來的文件了??赡芤呀?jīng)完全面目全非了。所以,對這一過程不可行。CRC校驗(yàn)本身是不可逆的

2、那么把判斷提前到壓縮完的數(shù)據(jù)?

解壓的時(shí)候,有沒有什么來判斷壓縮數(shù)據(jù)是否正確?壓縮完的數(shù)據(jù),有沒有固定的特征,是否可以做為解壓的判斷,在這一步里,我們也無法找到有效的可用的固定特征。因?yàn)檫@一步涉及到RAR的壓縮算法。即使一個(gè)源文件,即使你的文件前一部分是完全相同的,只對后面的部分進(jìn)行改過,那么壓縮完,數(shù)據(jù)也是完全一樣的。因?yàn)閴嚎s完的數(shù)據(jù)首先是一個(gè)壓縮表,后面是編碼。文件不一樣,掃描完的壓縮表也不一樣,編碼又是依賴于壓縮表,所以,這里頭找不到壓縮完的數(shù)據(jù)有任何的固定特征可以用來判斷的。

不管壓縮數(shù)據(jù)是什么樣的,Winrar都一如既往地進(jìn)行解壓,沒有進(jìn)行壓縮數(shù)據(jù)是否有效的判斷。

3、那假如我們破解了AES了泥?

由于AES只依賴于KEY,如果AES算法被破解了,我們知道了KEY,我們可以解出壓縮完的數(shù)據(jù),但是這里有一個(gè)問題,還有一個(gè)initVector密鑰,用來第一個(gè)16字節(jié)塊的異或,你沒有initVector參數(shù),你第一個(gè)16字節(jié)塊的數(shù)據(jù)便無法解得出來。

4、那就只能從第一步Hash的算法入手

即使你能破解hash,但hash后的結(jié)果泥?沒有結(jié)果,你怎么返推密碼。

所以綜上,發(fā)現(xiàn)rar的加密是由hash和AES兩種算法互相牽制,而兩種算法當(dāng)前都無法破解,至少目前還沒有辦法秒破。

責(zé)任編輯:藍(lán)雨淚 來源: 紅黑聯(lián)盟
相關(guān)推薦

2013-08-12 12:36:10

2018-12-20 09:36:24

2017-06-01 16:42:16

2012-11-14 14:39:50

2019-10-11 09:45:19

代碼開發(fā)密碼

2018-01-10 13:58:20

2024-06-24 08:39:45

2024-10-10 17:27:12

2010-12-03 11:43:51

2013-07-05 10:04:47

2011-12-09 10:17:07

2024-04-15 10:16:38

2021-04-23 09:49:59

加密RSA密碼

2010-08-30 14:10:08

2022-11-10 15:32:29

2013-05-13 11:10:31

2014-11-19 09:15:35

2012-07-27 15:59:59

2022-05-22 21:23:10

前端監(jiān)控系統(tǒng)

2021-07-30 06:49:40

SSD內(nèi)存CPU
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)