압축 알고리즘과는 별도로, zip 와 rar 의 파일 형식에서 가장 큰 차이점은 디렉토리 (TOC) 라고 생각합니다. ZIP 에는 TOC 가 있고 rar 에는 없습니다.
사실 TOC 라는 단어는 출판업에서 빌려온 것으로, 각 책의 본문 앞에 있는' 목록' 을 가리킨다. 그 역할은 전 세계 모든 사람들이 알고 있는 것이다. 책의 어떤 내용을 빨리 찾으려면 먼저 찾은 다음 TOC 에서 지정한 페이지 번호에 따라 직접 뒤집을 수 있다.
종이 책에서 TOC 는 인쇄된 양식이고, 전자 파일에는 구조화된 데이터로 구성된 양식이다. 그 목적은 또한 빠른 위치 파악을 위한 것이다. 한 파일에서 무엇을 찾고 싶다면 먼저 TOC 를 조사하여 관심 있는 내용이 파일에서 어디에 있는지 알고 건너뛰면 된다. 가장 일반적인 응용 프로그램은 avi, RM 과 같은 멀티미디어 파일입니다. 재생 중 누군가가 재생 막대에서 뛰어다니는 경우가 많습니다 (즉, "랜덤 액세스"). TOC 가 없다면, 수백 조 장의 파일에서 앞뒤로 찾는 것은 매우 느릴 것이다.
특히 zip 파일에서 TOC 는 속성 (파일 이름, 길이 등) 을 나열하는 파일 끝에 있는 테이블입니다. ) 및 zip 패키지에 저장된 위치입니다. Zip 패키지의 파일에 무작위로 액세스해야 하는 경우 TOC 에서 파일이 저장된 위치만 찾으면 됩니다. 바로 건너뛰면 됩니다.
그러나 RAR 파일에는 TOC 가 없으며 모든 파일은 헤더 뒤에 순차적으로 저장됩니다.
이러한 차이의 결과는 랜덤 액세스에서는 zip 가 rar 보다 빠르며 순차 액세스에서는 rar 이 zip 보다 빠르다는 것입니다.
랜덤 액세스란 위에서 언급한 압축 패키지에 지정된 파일에 대한 랜덤 액세스입니다. 간단한 예를 들어, HTML, 그림, CSS 및 js 가 많이 들어 있는 디컴파일 또는 다운로드한 웹 전자책은 압축된 패키지로 포장되어 있습니다. 이제 페이지 액세스를 요청하려면 압축을 풀 필요가 없습니다. 각 HTML 페이지를 열 때 사진, CSS, js 등의 추가 파일이 압축 패키지 전체에 무작위로 배포될 수 있다고 상상해 보십시오. TOC 가 없으면 처음부터 각 파일을 찾는 것이 느립니다. 그래서 jar 패키지가 표준 zip 패키지인 이유를 이해할 수 있습니다. 저는 디컴파일된 전자책, 만화, PDG 책, 그리고 무작위로 액세스해야 할 모든 것을 zip 형식으로만 저장합니다.
순차 방문이란 전체 압축 패키지를 처음부터 끝까지 해체하는 것이다. RAR 는 이와 관련하여 자연스러운 장점을 가지고 있습니다. 또한 WinRAR 열 파일의 시간을 절약하기 위해 일반적으로 오른쪽 클릭 메뉴를 통해 개별 RAR 을 직접 압축 해제하며 압축 패키지를 두 번 클릭하여 열고 압축을 푸는 경우는 거의 없습니다.
Rar 의 원작자가 이미 세상을 떠났기 때문에, 나는 이런 차이의 정확한 원인을 고증할 수 없다고 믿지만, 나는 개인적으로 DOS 시대의 백업 소프트웨어 분쟁과 관련이 있을 수 있다고 추측한다. DOS 시대에는 컴퓨터 하드 드라이브가 지금처럼 사치스럽지 않았고, 20MB 는 이미 컸다. 이 용량은 플로피 디스크 두 상자로 백업할 수 있어 데이터 자체의 가치에 비해 백업 비용이 매우 저렴합니다. 그래서 DOS 시대에 많은 기업과 기관들은 인적 또는 비인간적 요인으로 인한 돌이킬 수 없는 데이터 손실을 방지하기 위해 정기적인 하드 드라이브 백업 정책을 수립했습니다 (초기 하드 드라이브는 지금처럼 안정적이지 않을 수 있음). 백업 소프트웨어의 경우, Microsoft 는 DOS 가 포함된 백업 복원 도구를 제공했지만 데이터 압축 기능이 거의 없기 때문에 압축 소프트웨어에 백업 기능을 제공하는 것이 DOS 시대의 유행이 되었습니다. DOS 시대의 백업 미디어는 대부분 플로피 디스크이기 때문에 압축 소프트웨어의 백업 기능은 실제로 현재 흔히 볼 수 있는 기능으로 변환됩니다. 볼륨 압축 기능, 즉 플로피 디스크의 용량에 따라 볼륨을 압축한 다음 볼륨 압축 파일을 플로피 디스크에 백업하고 필요한 경우 압축을 풀거나 하드 드라이브로 복구하는 기능입니다.
DOS 시대의 가장 유명한 압축 도구는 pkzip 로 RAR 의 DOS 버전보다 일찍 나타났다. 볼륨 압축 중 pkzip 은 zip 파일 사양에 따라 마지막 볼륨인 끝에 TOC 를 저장하므로 다음과 같은 문제가 발생합니다.
1. 복구 시 디스크 압축을 풀 때마다 마지막 디스크를 먼저 넣고 TOC 를 한 번 읽습니다.
2. 마지막 디스크의 TOC 가 고장나면 다른 디스크가 다 좋아도 제대로 압축을 풀 수 없다.
이 두 가지 단점, 특히 첫 번째는 이렇게 악명이 높아서 매우 강한 개혁 목소리가 있다. 이 결정적인 순간에 RAR 의 DOS 판이 등장했습니다. 압축비가 pkzip 보다 높을 뿐만 아니라 (DOS 시대에는 중요하기 때문에 플로피 디스크의 가격이 비싸고 용량이 작기 때문), 당시 zip 형식에 대한 비판으로 TOC 도 취소되었기 때문에:
1. 볼륨별로 압축된 백업 파일을 복구할 때 TOC 가 있는 볼륨을 자주 삽입하지 않고 순차적으로 트레이싱하면 됩니다.
2. 볼륨이 손상된 경우에도 이를 건너뛰고 손상되지 않은 볼륨부터 압축을 풀 수 있습니다.
이러한 이유 (물론 다른 이유도 있음) 로 인해 RAR 출시 후 빠른 성공을 거두면서 pkzip 는 DOS 시대부터 사용자를 잃기 시작했고, Windows 시대에는 거의 자취를 감추었다. Windows 시대에 출시된 Winzip 은 볼륨 분할 압축 기능을 완전히 포기했습니다 (zip 형식은 항상 사람을 다치게 합니까? ) 을 참조하십시오. 내가 본 WinRAR 의 UnRAR 소스 코드에서 볼 때, WinRAR 의 압축 해제 아이디어는 파일을 처음부터 끝까지 순서대로 압축을 푸는 것이 분명하다. 그 해의 백업 복구 도구 분쟁의 영향은 정말 깊었던 것 같다.
둘째, 고체 압축 모드
압축 알고리즘에서 rar 형식의 가장 특징적인 것은 입체 압축이라고 생각합니다. 솔리드 스테이트 압축은 WinRAR v3.42 도움말 파일에 다음과 같이 설명되어 있습니다.
솔리드 스테이트 압축 파일은 RAR 특수 압축 모드로 저장된 압축 파일로, 압축 파일의 모든 파일을 하나의 연속 데이터 스트림으로 간주합니다.
이 해석은 고체 압축 형식이 압축비를 높일 수 있다는 비밀을 밝혀 준다. 데이터 압축의 기초는' 반복' 이다. 예를 들어 문자열 aaaabbb 는 반복을 포함하고 있다. (알버트 아인슈타인, Northern Exposure (미국 TV 드라마), 압축명언) A4b3 로 표현하면 더 짧아 보이지 않나요? 이것이 바로' 데이터 압축' 입니다. "반복" 은 상대적인 의미의 개념이다. 일정 범위 내에서 중복되거나 중복되지 않는 것처럼 보이면 범위를 확장하여 더 많은 중복 데이터를 찾을 수 있습니다. 이것이 고체 압축의 신비입니다.
간단한 예를 들어, jpg 파일 더미를 zip 와 일반 rar 로 압축하는 것은 어렵지만 solid rar 로 압축할 수 있습니다. 그 이유는 jpg 파일이 이미 압축된 형식이기 때문에 단일 jpg 파일에서 사용 가능한 중복 데이터를 찾기가 어렵기 때문에 zip 나 일반 rar 로 압축하기가 어렵기 때문입니다. 압축해야 할 파일을 분리하여 하나씩 처리하기 때문입니다. 그러나 solid rar 의 경우 압축해야 하는 모든 jpg 파일은 전체적으로 압축되며, 이러한 jpg 간에 중복 데이터가 있습니다. 예를 들어, 동일한 헤더 (다양한 데이터 테이블 포함) 가 있기 때문에 압축할 수 있는 공간이 생깁니다. 내가 본 자료로 볼 때, 플래시 파일도 비슷한 기술로 jpg 를 압축한다. 즉, 플래시 파일에 여러 jpg 파일이 사용되는 경우 한 개의 헤더를 사용할 수 있다.
물론, 세상에는 무료 점심이 없을 것이다. 고체 압축 방법은 압축비를 높이는 동시에 몇 가지 한계가 있다. WinRAR v3.42 도움말 파일에서 다음과 같이 설명합니다.
고체 압축은 압축 성능을 향상시킬 수 있습니다. 특히 작은 파일을 많이 추가할 경우 몇 가지 중요한 단점이 있습니다.
기존 엔티티 압축 파일을 업데이트하는 것이 느립니다.
하나의 솔리드 압축 파일에서 단일 파일을 추출할 때 먼저 그 이전의 모든 파일을 분석해야 합니다. 이렇게 하면 솔리드 스테이트 압축 파일에서 파일을 체크 아웃하는 것이 일반 압축 파일보다 느립니다. 그러나 모든 파일이 솔리드 스테이트 압축 파일에서 압축 해제되면 압축 해제 속도에 영향을 주지 않습니다.
솔리드 스테이트 압축 파일의 파일이 손상된 경우 손상 범위에서 모든 파일의 압축을 풀 수 없습니다. 따라서 솔리드 스테이트 압축 파일이 플로피 디스크와 같은 미디어에 저장되어 있는 경우 제작 시 [레코드 복구] 를 사용하는 것이 좋습니다.
고체 압축은 다음과 같은 경우에 적용된다
압축된 파일이 거의 업데이트되지 않는 경우
압축된 파일에서 파일 또는 파일의 일부를 자주 추출할 필요가 없습니다.
압축 효율이 압축 속도보다 더 중요한 경우
위에서 언급 한 "임의 액세스" 에 해당하는 솔리드 스테이트 압축 RAR 파일은 세계에서 랜덤 액세스에 가장 적합하지 않을 수 있습니다. 솔리드 스테이트 RAR 패키지의 파일에 액세스해야 하는 경우 파일에 도달할 때까지 파일 헤더에서 압축을 풀어야 합니다.
셋째, 안전
여기서 보안은 파일 시스템 보안, 암호 보호 보안 및 파일 데이터 보안과 같은 몇 가지 의미를 포함합니다.
Zip 형식 사양을 개발할 때 운영 체제 자체의 파일 보안이 충분하지 않기 때문에 zip 형식은 읽기 전용 속성을 포함한 가장 기본적인 파일 속성만 기록하고 추가 보안 속성은 기록하지 않습니다.
Rar 형식이 처음 출시되었을 때 파일 시스템 보안은 zip 와 유사한 DOS 만 참조할 수 있었습니다. 하지만 rar 는 폐쇄적인 형식이기 때문에 저자 스스로 어떻게 바꿔야 할지 결정한다. 따라서 Windows 에서 NTFS 가 등장해 파일 시스템 보안 속성을 확장할 때 rar 도 적극적으로 따라가기 때문에 이제 rar 형식이 zip 보다 낫다고 말해야 합니다.
Zip 과 rar 형식 모두 비밀번호 보호를 제공하지만 비밀번호 보호의 보안 강도는 다릅니다.
Zip 의 오픈 형식과 오픈 소스 코드로 인해 zip 암호 해독 소프트웨어가 더 일찍 등장했습니다. 처음에는 폭력 해독을 위주로 위협이 크지 않았다. Zip 암호 보안에 치명적인 타격은 알려진 일반 텍스트 공격 방법입니다. 암호화된 zip 파일의 일부 내용 (암호문) 을 암호화하는 암호 해독 실제 내용 (일반 텍스트) 을 알면 암호화 zip 암호를 추출할 수 있습니다. 이러한 공격 방식의 위협과 일부 국가의 법률이 암호화 기술에 대한 제한 하에 유명한 오픈 소스 조직인 zlib 는 암호화 zip 에 대한 지원을 영원히 포기한다고 발표했습니다. 자세한 내용은 zlib 웹 사이트의 관련 지침을 참조하십시오 (zlib 공개 소스 코드에서 자세히 찾아보아도 원래의 암호화 해독 관련 코드를 찾을 수 있음).
Rar 을 처음 출시했을 때 zip 와 같은 것을 기억합니다. 암호화된 파일의 내용은 나열할 수 없지만 암호화된 파일의 파일 이름은 나열할 수 있습니다. 나중에 알려진 일반 텍스트 공격에 겁을 먹었는지 암호화된 rar 파일의 파일조차 보이지 않는' 암호화된 파일 이름' 옵션이 추가되어 공격자가 일반 텍스트를 추측할 수 없게 되었다.
Rar 형식은 zip 가 내놓은 것보다 늦게 보안 방면에서 충분한 교훈을 얻었다. 따라서 NIST (National Standards and Technology Institute) 에서 권장하는 AES 대칭 암호화 알고리즘을 채택합니다. 키 길이는 128 비트입니다. ASE 가 돌파되기 전 (NIST 는 30 년 안에 돌파할 수 없다고 판단함) 폭력법만 빙빙 돌 수 있기 때문에 암호 보안은 zip 보다 높다고 말해야 한다. WinRAR 3.42 에 대한 도움말 파일은 다음과 같습니다.
ZIP 형식은 개인 암호화 알고리즘을 사용합니다. RAR 압축 파일은 더욱 강력한 AES- 128 표준 암호화를 사용합니다. 중요한 정보를 암호화해야 하는 경우 RAR 압축 파일 형식을 선택하는 것이 좋습니다. 보안을 위해 암호는 최소 8 자 이상이어야 합니다. 어떤 언어의 단어도 암호로 사용하지 마십시오. 문자와 숫자를 임의로 조합하여 암호의 대/소문자를 주의하는 것이 가장 좋다. 비밀번호를 잃어버리면 암호화된 파일을 체크아웃할 수 없고 WinRAR 의 저자조차도 암호화된 파일의 압축을 풀 수 없다는 것을 기억하십시오.
데이터 보안의 경우 RAR 형식 자체는 "레코드 복구" 라는 특수한 유형의 추가 정보를 지원합니다. RAR 파일에 복구 기록이 있는 경우 WinRAR 는 미디어의 물리적 손상이나 기타 원인으로 인해 데이터가 손실되면 복구 기록에 따라 데이터 복구를 시도할 수 있습니다. Zip 형식에는 복구 레코드가 없으므로 데이터 보안이 RAR 보다 약하다고 말해야 합니다.
RAR 파일 자체는 복구 기록을 지원하지만 WinRAR 에서는 이 옵션이 기본적으로 해제되어 있으며, 연 후 압축된 RAR 파일의 볼륨이 증가 (비율 증가 및 설정 관련) 되어 일부 사람들이 익숙하지 않은 것처럼 보일 수 있습니다 (개인적으로 포럼에서 압축된 RAR 파일이 왜 이렇게 큰지 불평하는 것을 보았기 때문에 이 기능은 기본적으로 쓸모가 없습니다.
넷째, 개방성
개방의 역차는 분명합니다. zip 형식은 파일 형식에서 완전히 개방될 뿐만 아니라 운영 소스 코드를 제공하는 전문 오픈 소스 조직이 있으며 플랫폼 간 사용에도 큰 제한이 없습니다. Rar 형식은 완전히 기밀입니다. 작성자는 압축을 푸는 데 필요한 소스 코드만 제공하고 압축에 필요한 것은 제공하지 않으므로 플랫폼 간 사용에 어려움이 있습니다.
Zip 의 오픈 소스 조직에서 가장 유명한 것은 zlib 와 InfoZip 입니다. zlib 는 메모리 버퍼의 압축을 강조하므로 png 와 같은 오픈 소스 조직이 내부 압축 알고리즘으로 사용되고 Java 의 jar 커널도 zlib 에서 가져온 것이므로 형식화된 jar 패키지는 자연스럽게 표준 zip 파일입니다. InfoZip 는 파일 작업 (암호 보호 포함) 에 초점을 맞추고 있으며, zlib 가 광범위하게 적용되지 않는 것 같지만, 소스 코드를 필요한 대로 수정해야 하는 경우 개인적으로 유용하다고 생각합니다.
Png 조직의 홈페이지에서 png 형식의 역사를 언급했는데, 저도 흥미롭다고 생각합니다. 사실 png 를 하는 한 무리의 사람들이 모두 gif 형식을 하고 있다. 그러나 Unisys 는 gif 형식의 핵심인 ——LZW 압축 알고리즘에 대해 로열티를 받기 시작하면서 분노했고, 단순히 png 형식을 제시했다. 대형 구조는 세그먼트 구조지만, 핵심 압축 알고리즘은 오픈 소스 zlib 를 사용하며, 대부분의 경우 압축 효과가 gif LZW 보다 강하다. 저작권 제한이 없기 때문에 png 는 정적 그래픽 분야에서 널리 사용되고 있습니다. 제때에 애니메이션 지원을 하지 않았다면 인터넷에서 유행하기 시작했다면 gif 는 이미 죽었을 것이다.
공식 홈페이지인 www.rarlab.com 에서 RAR 의 압축 해제 소스 코드를 제공합니다. 보통 WinRAR 정식 버전보다 조금 늦지만 WinRAR 소스 코드에서 직접 추출한 것으로 알려져 호환성에는 문제가 없어야 합니다.
동사 (verb 의 약어) 결론
다음 관점은 순전히 개인적인 관점으로, 참고용으로만, 지도적 의의가 없다.
압축된 패키지를 무작위로 액세스해야 하는 경우가 많은 경우 rar 대신 zip 을 선택해야 합니다. 다운로드한 rar 을 zip 로 다시 압축하는 것은 번거로울 수 있지만 앞으로는 수많은 번거로움을 줄일 수 있다.
볼륨 압축이 필요한 경우 (예: 일부 웹 사이트에서 업로드된 파일의 크기에 제한이 있는 경우) rar 만 사용할 수 있습니다. 사실, 이것은 내가 rar 형식을 사용할 수 있는 유일한 장소이며, 다른 때는 zip 가 상의할 여지가 없다.