簡介
RAR是一種專利文件格式,用于數據壓縮與歸檔打包,開發者為尤金·羅謝爾(俄語:Евгений Лазаревич Рошал,拉丁轉寫:Yevgeny Lazarevich Roshal),RAR的全名是“RoshalARchive”,即“羅謝爾的歸檔”之意。首個公開版本RAR 1.3發布于1993年。
尤金·羅謝爾,1972年3月10日生于俄羅斯。畢業于俄羅斯車裡雅賓斯克工業大學(Chelyabinsk Technical University,今南烏拉州立大學),也是FAR文件管理器的作者。他開發程序壓縮或解壓RAR文件,最初用于DOS,後來移植到其它平台。主要的Windows版本編碼器,稱為WinRAR,以共享軟件的形式發行。不過羅謝爾公開了解碼器源碼,UnRAR解碼器許可證以不許發布編譯RAR兼容編碼器為條件下允許有條件自由發布與修改,而RAR編碼器一直是有專利的。
最近的開發者是尤金·羅謝爾的胞兄亞曆山大·羅謝爾。雖然其解碼器有專利,編譯好的解壓程序仍然存在于若幹平台,例如開源的7-Zip。
文件特點
RAR通常情況比ZIP壓縮比高,但壓縮/解壓縮速度較慢。
分卷壓縮:壓縮後分割為多個文件。
固實壓縮:把要壓縮的視為同一個文件以加大壓縮比,代價是取用包中任何文件需解壓整個壓縮包。
恢複記錄:加入冗餘數據用于修複,在壓縮包本身損壞但恢複記錄夠多時可對損壞壓縮包進行恢複。
加密:RAR 2.0使用AES-128-cbc,(rar5.0以後為AES-256CBC)。之前RAR的加密算法為私有。目前均未被直接攻破(至少沒有公開),沒有密碼時隻有暴力破解。
來源
RAR的名字源自其作者Eugene Roshal,為Roshal ARchive的縮寫。Eugene Roshal最初編寫了DOS版本的編碼和解碼程序,後來移植到很多平台,例如比較著名的Windows平台上的WinRAR。Eugene Roshal有條件的公開了解碼程序的源代碼,但是編碼程序仍然是私有的。
如何打開
打開工具
WinRAR、WinMount、快壓、2345好壓,7-zip等等。
RAR文件是一種最常用的壓縮文件,通常都是用WinRAR軟件打開處理。
WinRAR 是 32 位 Windows 版本的 RAR壓縮文件管理器 ——一個允許你創建、管理和控制壓縮文件的強大工具。存在一系列的RAR版本,應用于數個操作系統環境:Windows、Linux、FreeBSD、DOS、OS/2、MacOS X。
為什麼不能被破解
RAR文件生成的流程。
WinRAR加密文件時,總的分兩個步驟:
先把源文件壓縮,壓成一段數據段。
再将壓縮完的數據段加密。
對于同一個源文件來說,不進行加密,壓縮完,其RAR文件中的數據段是一模一樣的。但是如果對同一個源文件來說,即使使用同一個密碼,加密完RAR文件中的數據段是不一樣的,這是由于加密的密鑰是依賴于一個Salt(8個字節的密鑰,用來加密時使用,存放在RAR文件頭中裡)
所以要解密rar加密文件關鍵在于數據加密這一步,那我們接下來研究一下如何加密的。
加密“壓縮完的數據段”的流程
獲取密鑰:
将明文的密碼與Salt一起,通過HASH算法,生成兩個16字節的密鑰。(一個是KEY(AES算法的參數),一個是initVector)
以Key和initVector來加密壓縮數據:
這裡,是一個循環加密的結構,每16字節作為一個塊,進行加密(這可能正是為什麼加密完的文件長度總為16倍數的原因)。加密采用AES算法(RAR采用的是AES的Rijndael的标準應用)。這裡注意:AES加密前,有一個異或運算,是先将每16字節塊與上一個16字節塊加密結果進行異或,然後再進行AES算法的。我用一個簡單的示意代碼看說明:
packblock=packblock^initVector
encryptBlock=AES(packblock) ;(KEY為AES的密鑰)
for i=1to 塊數量-1
packblock=packblock^encryptBlock[i-1]
encryptBlock=AES(packblock);(KEY為AES的密鑰)
next
;packblock表示壓縮完的每16字節數據
;encryptBlock表示加密完的每16字節數據
解密的過程
由于AES算法是對稱的,所以解密的過程,是加密過程的逆運算。但解密時AES算法過程與加密所用的不一樣(是因為解密過程中由KEY生成的子密鑰表不一樣)。仍然需要我們将密碼輸入,與salt一起生成兩個16字節密鑰,KEY和initVector。
packblock=AES1(encryptBlock) ;(KEY為AES的密鑰)
1packblock=packblock^initVector
for i=1to 塊數量-1
packblock=AES1(encryptBlock) ;(KEY為AES的密鑰)
packblock=packblock^encryptBlock[i-1]1
next
那判斷密碼是否正确的在什麼地方呢?
解密的過程是解密後的數據塊進行解壓縮,然後解成源文件,對該文件進行CRC校驗,存在RAR文件中的源文件CRC校驗碼比較,相同則密碼正确,不相同則密碼錯誤。
無法破解的原因
從上面,我們了解了RAR文件的整體思路。地球人都知道,解密時,肯定有個步驟是來判斷密碼的正确與否。而且,依據以往的經驗,我們也許可以将某些判斷的點移動,那樣可以縮減破解的流程思路。那RAR的這一步在哪裡?它把校驗放在了最後的一步。如果要秒破,我們該怎麼做泥?
我們從解密過程逆反過來看看:
CRC檢驗這一塊修改跳轉?根本毫無意義,因為它已經是最後一步了。你可以修改RAR文件頭的CRC值,你可以将它改得和你用任意密碼解壓出來的文件CRC值一樣,但你的文件根本就不是原來的文件了。可能已經完全面目全非了。所以,對這一過程不可行。CRC校驗本身是不可逆的
那麼把判斷提前到壓縮完的數據?
解壓的時候,有沒有什麼來判斷壓縮數據是否正确?壓縮完的數據,有沒有固定的特征,是否可以做為解壓的判斷,在這一步裡,我們也無法找到有效的可用的固定特征。因為這一步涉及到RAR的壓縮算法。即使一個源文件,即使你的文件前一部分是完全相同的,隻對後面的部分進行改過,那麼壓縮完,數據也是完全不一樣的。因為壓縮完的數據首先是一個壓縮表,後面是編碼。文件不一樣,掃描完的壓縮表也不一樣,編碼又是依賴于壓縮表,所以,這裡頭找不到壓縮完的數據有任何的固定特征可以用來判斷的。
不管壓縮數據是什麼樣的,Winrar都一如既往地進行解壓,沒有進行壓縮數據是否有效的判斷。
那假如我們破解了AES了呢?
由于AES隻依賴于KEY,如果AES算法被破解了,我們知道了KEY,我們可以解出壓縮完的數據,但是這裡有一個問題,還有一個initVector密鑰,用來第一個16字節塊的異或,你沒有initVector參數,你第一個16字節塊的數據便無法解得出來。
那就隻能從第一步Hash的算法入手
即使你能破解hash,但hash後的結果呢?沒有結果,你怎麼反推密碼。
所以綜上,發現rar的加密是由hash和AES兩種算法互相牽制,而兩種算法當前都無法破解。
如何給RAR加密
RAR和ZIP兩種格式均支持加密功能。
若要加密文件,在壓縮之前你必須先指定密碼,或直接在壓縮文件名和參數對話框中指定。
在 命令行 模式時使用開關-p[密碼]。
而在 WinRAR 圖形界面時,要輸入密碼你可以按下 Ctrl+P 或者是在文件菜單選擇“設置默認密碼”命令。
另一種方式是單擊 WinRAR 窗口底部左下角的鑰匙圖标。在壓縮文件名和參數對話框 裡的“高級選項”組中按下“設置密碼”按鈕輸入密碼。
和 ZIP 不同,RAR 格式不隻允許數據,而且其它的可感知的壓縮文件區域:文件名、大小、屬性、注釋和其它塊都可加密。如果你希望這樣做,你需要在密碼對話框中設置“加密文件名” 選項,或在命令行模式使用-p[密碼] 的開關-hp[密碼]。以這種方式加密的文件,如果沒有密碼甚至不可能查看文件列表。
當不再需要的時候,别忘了将輸入的密碼删除。不然你或許又加密了别的壓縮文件,但卻不希望使用同一組密碼。要删除密碼時,隻需要輸入空字符串來替換原先的密碼,或者先關閉 WinRAR 并重新啟動一次。當有密碼存在時,鑰匙的圖标是紅色的,否則它是黃色的。而且,當你使用密碼開始壓縮操作時,标題欄壓縮文件名和參數對話框 也會閃爍兩次。
如果你在壓縮文件名和參數對話框直接輸入它,你不需要删除密碼。這不同于其它方式,此類密碼僅在單一壓縮操作有效,并在完成後它會自動删除。
當解壓加密的文件時,開始操作之前你也可以不需要事先輸入密碼。如果 WinRAR 遇到加密的文件,而解壓之前未先輸入密碼的話,它便會提示用戶輸入密碼。
WinRAR 支持 ZIP 2.0 格式使用私有加密算法。RAR壓縮文件使用更強大的 AES-128 标準加密。如果你需要加密重要的信息,選擇RAR 壓縮文件格式會比較好一些。為了确實的安全性,密碼長度請最少要 8 個字符。不要使用任何語言的單詞作為密碼,最好是任意的随機組合字符和數字,并且要注意密碼的大小寫。請記住,如果你遺失你的密碼,你将無法取出加密的文件,就算是 WinRAR 的作者本身也無法解壓加密過的文件。
壓縮分卷
基本介紹
壓縮分卷就是把一個比較大的文件用zip或rar等壓縮軟件進行壓縮時,根據你的需要大小,分别壓縮成若幹的小文件。便于軟盤儲存、郵件發送等。但它們組合是一個整體,必須按照生成的順序編号才能解壓出原文件,缺一不可.
在WinRAR中也集成了分卷壓縮的功能,而且它并不像WinZip那樣必須在軟盤的支持下才可以使用這個功能,在制作的時候能夠将某個大文件分卷壓縮存放在任意指定的盤符中,所以這也大大的方便了我們的使用。
分卷壓縮的文件或者是文件夾,在彈出的菜單中選擇“添加到壓縮包”選項。
壓縮包名稱”對話框中确定文件存放的路徑和名稱,這時就可以将分卷壓縮之後的文件存放在硬盤中的任何一個文件夾中。同時在“壓縮方式”下拉列表中選擇采用何種方式進行壓縮,建議大家采用“最好”方式,這樣能夠讓WinRAR最大程度的壓縮文件。
此外,下部的壓縮卷大小對話框可以設置每一個壓縮包的個頭大小。其中WinRAR默認的是1.44M軟盤模式,不過你也可以定義壓縮包大小,比如将其改變為1,024,000字節或者是由系統自動檢測,這樣當某一張軟盤中已經存有文件的時候,WinRAR能夠根據可用的磁盤空間來自動調整壓縮包的大小。
這樣我們就可以得到以定義好的文件名為前綴,rar、r01、r02…之類為後綴名的文件,将它們複制到軟盤中就可以了。至于合并這些文件也非常簡單,隻要将所有的分卷壓縮文件複制到一個文件夾中,然後右擊*.rar的文件,并選擇“解壓縮文件”命令即可。由于這種合并方式并不要求按照一定的次序插入軟盤,所以即使軟盤次序颠倒了也不會有任何影響。
RAR與ZIP的區别
區别一、ZIP的安裝比較大,并僅僅有英文版+漢化包,RAR有官方的簡體中文版,并且安裝很小,不足一兆
區别二、WinRAR的壓縮率較高,而ZIP的壓縮率更低
區别三、ZIP支持的格式很多,但已經較老,不大流行,RAR支持格式也很多,并且還是流行的
區别四、ZIP僅僅能夠壓縮成ZIP格式,不能解壓RAR格式;RAR不僅有自己的格式,還可以壓縮成ZIP格式并解壓ZIP格式
區别五、WinRAR支持分卷壓縮,ZIP不支持
區别六、國外很多都采用ZIP,因為它是免費的,RAR不是免費的,在國内很流行是由于有盜版的存在;ZIP不能兼容RAR,是因為這樣必須付出一筆費用。
壓縮包虛拟化(WinMount創新理念)
*挂載壓縮包RAR/ZIP/MOU至虛拟盤;
*快速挂載ZIP/MOU/WIM 到當前目錄,迅速變身虛拟文件夾;
* 特點:完全抛棄解壓,文件操作均在虛拟路徑中,不産生系統垃圾,保護硬盤,節省硬盤空間。



















