rar

rar

徠RAR是一種專利文件格式,用於數據壓縮與歸檔打包,開發者尤金·羅謝爾(Eugene Roshal),所以RAR的全名是:Roshal ARchive。首個公開版本RAR 1.3發佈於1993年。

在計算機科學中,RAR是一種文件壓縮與歸檔的私有格式。RAR的名字源自其作者Eugene Roshal,為Roshal ARchive的縮寫。

軟體


簡介

rar
rar
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的名字源自其作者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加密文件時,總的分兩個步驟:
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=packblock^initVector
rar
rar
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的這一步在哪裡?它把校驗放在了最後的一步。如果要秒破,我們該怎麼做泥?
我們從解密過程逆反過來看看:
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兩種演演算法互相牽制,而兩種演演算法當前都無法破解。
如何給RAR加密
RAR和ZIP兩種格式均支持加密功能。
若要加密文件,在壓縮之前你必須先指定密碼,或直接在壓縮文件名和參數對話框中指定。
在 命令行 模式時使用開關-p[密碼]。
而在 WinRAR 圖形界面時,要輸入密碼你可以按下 Ctrl+P 或者是在文件菜單選擇“設置默認密碼”命令。
另一種方式是單擊 WinRAR 窗口底部左下角的鑰匙圖標。在壓縮文件名和參數對話框 里的“高級選項”組中按下“設置密碼”按鈕輸入密碼。
和 ZIP 不同,RAR 格式不只允許數據,而且其它的可感知的壓縮文件區域:文件名、大小、屬性、註釋和其它塊都可加密。如果你希望這樣做,你需要在密碼對話框中設置“加密文件名”選項,或在命令行模式使用-p[密碼] 的開關-hp[密碼]。以這種方式加密的文件,如果沒有密碼甚至不可能查看文件列表。
當不再需要的時候,別忘了將輸入的密碼刪除。不然你或許又加密了別的壓縮文件,但卻不希望使用同一組密碼。要刪除密碼時,只需要輸入空字元串來替換原先的密碼,或者先關閉 WinRAR 並重新啟動一次。當有密碼存在時,鑰匙的圖標是紅色的,否則它是黃色的。而且,當你使用密碼開始壓縮操作時,標題欄壓縮文件名和參數對話框 也會閃爍兩次。
如果你在壓縮文件名和參數對話框直接輸入它,你不需要刪除密碼。這不同於其它方式,此類密碼僅在單一壓縮操作有效,並在完成後它會自動刪除。
當解壓加密的文件時,開始操作之前你也可以不需要事先輸入密碼。如果 WinRAR 遇到加密的文件,而解壓之前未先輸入密碼的話,它便會提示用戶輸入密碼。
WinRAR 支持 ZIP 2.0 格式使用私有加密演演算法。RAR壓縮文件使用更強大的 AES-128 標準加密。如果你需要加密重要的信息,選擇RAR 壓縮文件格式會比較好一些。為了確實的安全性,密碼長度請最少要 8 個字元。不要使用任何語言的單詞作為密碼,最好是任意的隨機組合字元和數字,並且要注意密碼的大小寫。請記住,如果你遺失你的密碼,你將無法取出加密的文件,就算是 WinRAR 的作者本身也無法解壓加密過的文件。

文件特點


● RAR通常情況比ZIP壓縮比高,但壓縮/解壓縮速度較慢。
● 分卷壓縮:壓縮後分割為多個文件。
● 固實壓縮:把要壓縮的視為同一個文件以加大壓縮比,代價是取用包中任何文件需解壓整個壓縮包。
● 恢復記錄:加入冗餘數據用於修復,在壓縮包本身損壞但恢復記錄夠多時可對損壞壓縮包進行恢復。
● 加密:RAR 2.0使用AES-128-cbc,(rar5.0以後為AES-256CBC)。之前RAR的加密演演算法為私有。目前均未被直接攻破(至少沒有公開),沒有密碼時只有暴力破解。

基本介紹

壓縮分卷就是把一個比較大的文件用zip或rar等壓縮軟體進行壓縮時,根據你的需要大小,分別壓縮成若干的小文件。便於軟盤儲存、郵件發送等。但它們組合是一個整體,必須按照生成的順序編號才能解壓出原文件,缺一不可.
在WinRAR中也集成了分卷壓縮的功能,而且它並不像WinZip那樣必須在軟盤的支持下才可以使用這個功能,在製作的時候能夠將某個大文件分卷壓縮存放在任意指定的盤符中,所以這也大大的方便了我們的使用。
分卷壓縮的文件或者是文件夾,在彈出的菜單中選擇“添加到壓縮包”選項。
壓縮包名稱”對話框中確定文件存放的路徑和名稱,這時就可以將分卷壓縮之後的文件存放在硬碟中的任何一個文件夾中。同時在“壓縮方式”下拉列表中選擇採用何種方式進行壓縮,建議大家採用“最好”方式,這樣能夠讓WinRAR最大程度的壓縮文件。
此外,下部的壓縮卷大小對話框可以設置每一個壓縮包的個頭大小。其中WinRAR默認的是1.44M軟盤模式,不過你也可以定義壓縮包大小,比如將其改變為1,024,000位元組或者是由系統自動檢測,這樣當某一張軟盤中已經存有文件的時候,WinRAR能夠根據可用的磁碟空間來自動調整壓縮包的大小。
這樣我們就可以得到以定義好的文件名為前綴,rar、r01、r02…之類為後綴名的文件,將它們複製到軟盤中就可以了。至於合併這些文件也非常簡單,只要將所有的分卷壓縮文件複製到一個文件夾中,然後右擊*.rar的文件,並選擇“解壓縮文件”命令即可。由於這種合併方式並不要求按照一定的次序插入軟盤,所以即使軟盤次序顛倒了也不會有任何影響。

的區別

區別一、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 到當前目錄,迅速變身虛擬文件夾;
* 特點:完全拋棄解壓,文件操作均在虛擬路徑中,不產生系統垃圾,保護硬碟,節省硬碟空間。