파일을 압축시킬때 어떤 알고리즘을 통해 압축되는것인지가 궁금합니돠
전에 읽던 책에서는 간단하게 a가 5개면 5a 뭐 이런식으로 길이를 줄여표현할수 있다고하는데
너무 대충 설명되어있어서 실제론 어떤방법을 거치는지 감이 잘 안잡히네요
혹시 압축 알고리즘에 대하여 다룬 괜찮은 책이나 문서가 있다면 추천해주실수있나요!!
그리고 또 궁금증이
암호가 걸린 압축파일을 풀 때 암호를 입력하지않으면 풀리지 않잖아요
압축파일의 선처리 부분에 무언가 스크립팅을 준거 같은데
아무리 암호가 걸려있어도 실제 data가 압축알고리즘을 통해 압축된 부분에는 변함이 없을꺼같은데..
암호를 무시하고 압축을 풀수있는 방법은 없는건가요?
혹은 예전에 와레즈같은곳에서 돌아다니던 rar password crack 같은거는 어떤 원리로구성이되었는지도궁금합니다.
사전식 대입을하는건지 혹은 시스템해킹을 하듯이 암호인증 폼에 특정한값을 주어서 통과하는건지.....
훔궁금한게너무많네요 답변부탁드립니다 ^.^
첫 번째 질문에 대해서 먼저 말씀을 드리겠습니다. 말씀하신 방법은 실제 기존에도 사용하고 있고 가장 기본적인 압축 방법입니다. 예를들어 데이터가 AAAAABBCDD라고 되어 있다면.. 5A2B1C2D 이런식으로 압축을 해서 실제로 10 -> 8 BYTE 식으로 줄인겁니다. 여기서 문제는 반복되는 데이터가 많을 수록 압축률이 높다는거죠.. AABCDEFG 이런식으로 되어 있다면, 오히려 압축한 데이터가 더 커질수 있습니다. 이 방법은 C로 배우는 알고리즘 이라는 책에 수록 되어 있습니다.. 표지가 초록색과 하얀색으로 되어 있는..ㅡ_ㅡ;; 어느 책이나 쉽게 찾아볼수 있습니다.
두 번째 질문에 대해서 답변을 드리면.. 제가 분석 해본 모 압축 프로그램은 zip으로 압축을하고 암호를 걸었는데.. 데이터가 변하더군요.. 무슨 말이냐면.. 암호를 걸지 않은 상태와 암호를 건 상태의 파일 데이터가 서로 틀리다는 것입니다.ㅡ_ㅡ;;
정확하게 zip이나 rar 표준 구조에서 암호를 따로 저장해두는 field가 있는지 모르겠으나.. 제가 분석한 프로그램은 데이터에 변형을 가하는데 있어서 해당 암호가 key값이 되더군요. 즉, 암호화(?) 할때 key값이 바로 제가 입력한 패스워드가 되는 식으로.. 그리고 zip이나 rar 파일 구조의 스펙에서 따로 암호를 저장하는 field가 없을 경우 해당 압축 유틸리티를 만든 회사에서 별도로 자기들이 그런 부분을 넣은것이니.. 표준은 아니겠죠?? 여튼 따로 스펙과 분석을 병행하셔서 찾아보셔야 할것 같습니다.