成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為什么rar密碼不能被破解

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

一、Rar文件生成的流程。

Winrar加密文件時,總的分兩個步驟:

1:先把源文件壓縮,壓成一段數據段。

2:再將壓縮完的數據段加密。

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

二、加密“壓縮完的數據段”的流程

1、獲取密鑰:

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

2、以Key和initVector來加密壓縮數據:

這里,是一個循環加密的結構,每16字節作為一個塊,進行加密(這可能正是為什么加密完的文件長度總為16倍數的原因)。加密采用AES算法(RAR采用的是AES的rijndael的標準應用)。這里注意:AES加密前,有一個異或運算,是先將每16字節塊與上一個16字節塊加密結果進行異或,然后再進行AES算法的。我用一個簡單的示意代碼看說明:

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

packblock[0]=packblock^initVector

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

for i=1 to 塊數量-1

packblock=packblock^encryptBlock[i-1]

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

next

;packblock表示壓縮完的每16字節數據

;encryptBlock表示加密完的每16字節數據

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

三、解密的過程

由于AES算法是對稱的,所以解密的過程,是加密過程的逆運算。但解密時AES算法過程與加密所用的不一樣(是因為解密過程中由KEY生成的子密鑰表不一樣)。仍然需要我們將密碼輸入,與salt一起生成兩個16字節密鑰,KEY和initVector。

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

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

packblock[0]=packblock^initVector

for i=1 to 塊數量-1

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

packblock=packblock^encryptBlock[i-1]

next

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

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

解密的過程是解密后的數據塊進行解壓縮,然后解成源文件,對該文件進行CRC校驗,存在RAR文件中的源文件CRC校驗碼比較,相同則密碼正確,不相同則密碼錯誤。#p#

四、無法秒破的原因

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

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

1、CRC檢驗這一塊修改跳轉?

根本毫無意義,因為它已經是最后一步了。你可以修改RAR文件頭的CRC值,你可以將它改得和你用任意密碼解壓出來的文件CRC值一樣,但你的文件根本就不是原來的文件了。可能已經完全面目全非了。所以,對這一過程不可行。CRC校驗本身是不可逆的

2、那么把判斷提前到壓縮完的數據?

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

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

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

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

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

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

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

責任編輯:藍雨淚 來源: 紅黑聯盟
相關推薦

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

代碼開發密碼

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

2010-08-30 14:10:08

2021-04-23 09:49:59

加密RSA密碼

2022-11-10 15:32:29

2013-05-13 11:10:31

2014-11-19 09:15:35

2012-07-27 15:59:59

2021-01-08 10:05:01

JavaSpring Boojar

2022-05-22 21:23:10

前端監控系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产在线一区二区三区 | 中文字幕一区在线观看视频 | 国产精品欧美一区二区三区不卡 | 国产一区二区在线免费观看 | 久久国产婷婷国产香蕉 | 国产日韩在线观看一区 | 欧美另类视频 | 国产精品一二三区 | 亚洲精品无 | 欧美激情一区二区三区 | 91麻豆精品国产91久久久久久久久 | 黄色免费在线观看网站 | 久久久久国产精品 | 91久久精品一区二区二区 | 国产精品久久久久久久久久久久久 | 午夜在线影院 | 日韩国产一区二区三区 | 欧美精品在线观看 | 欧美成年人网站 | 91色站 | 欧美一级在线 | 99精品免费视频 | 欧美在线亚洲 | 欧美一区二区大片 | 久久成人在线视频 | 涩涩视频在线观看 | 99热.com | 毛片视频网址 | 天天色图 | 国产日韩一区二区三区 | 久久综合婷婷 | 久久久国产一区二区三区 | 国产成人综合在线 | 亚洲一区二区视频 | 青青草在线视频免费观看 | 国产探花在线观看视频 | 国产精品不卡视频 | 国产成人精品久久久 | 中文字幕在线视频一区二区三区 | 日日噜噜噜夜夜爽爽狠狠视频, | 精品国产乱码久久久久久影片 |