FILE 정합성 체크하기 CheckSum

가령 업로드 기능을 만든다고 하면 업로드할 파일인 원본이 있을 것이고 서버에 업로드된 업로드파일이 있을것이다
업로드된 파일이 업로드 과정에서 훼손되지 않았다는 것을 증명할 방법이 checksum 또는 무결성 검사 이다
 

정합성 체크 흐름


sequenceDiagram participant A as Client participant B as FILE : test.mov participant C as Server participant D as Storage A ->> B : hash : 9e107d9d372b B ->> C : test.mov upload & 9e107d9d372b D ->> C : hash : upload.mov & 9e107d9d372b
notion image
위와 같은 상황은
Client 에서 test.mov 를 hash화 하여 해시값을 출력하고 업로드 하는 과정이다
그리고 서버에 해시값을 같이 보낸다
업로드된 파일을 hash 했을때 클라이언트에서 받은 해시값과 업로드파일을 hash한 해시값을 비교해서 같으면 정합성 체크가 된것이다
위와 같은 정합성 체크가 이루어지려면 같은 입력에는 항상 같은 출력값이 나오는 알고리즘을 사용해야 하며 주로 md5 알고리즘을 많이 쓴다
다른 알고리즘 보다 연산이 적고 빠른것이 이유겠지..

결론


원본과 업로드된 파일을 두개다 같은 알고리즘으로 해시 하여 비교하면 끝!
실제사용했을때 약 40Gb도 40~60분 정도 걸리기에..
나처럼 대용량 파일을 업로드 해야하는 경우라면 스트림으로 read할때 같이 암호화 하는 방법으로 사용해야 효율이 좋을것이다.
 
댓글 0

등록된 댓글이 하나도 없습니다...😢