2012-05-12 2 views
0

파일의 이진 데이터가 손상되지 않았는지 확인하는 가장 좋은 방법은 무엇입니까?메모리에 읽으려고 시도하는 동안 디스크의 파일에서 이진 데이터 손상을 확인하십시오.

일부 문자열 (길이 + 문자)과 일부 MAP (문자열보다 맵의 첫 번째 크기)이 있습니다.

데이터가 손상되면 맵 크기가 매우 커질 수 있으므로 무한 루프가 발생합니다.

아이디어를 확인하고 읽고 쓰는 동안 바이너리 데이터가 손상되지 않았는지 확인 하시겠습니까?

+0

몇 가지 검사를? ... –

+0

어쩌면 ... 올바르게 구현하는 방법은 무엇입니까? – abrahab

+2

어떤 바이너리 데이터입니까? 데이터가 손상되었거나 데이터를 저장하는 미디어가 손상 되었습니까? 왜 무한 루프에 들어가겠습니까? 이 질문은 나쁘게 세부 사항이 필요합니다. – Amadan

답변

2

가장 간단한 해결책은 일종의 해시/체크섬입니다.

  • 하나/2의 보수 또한
    • 장점 : 여러 가지 옵션이 있습니다 구현하기 매우 쉬운 - 당신의 데이터 블록의 모든 32 비트 DWORD에를 추가 할 수 있습니다.
    • 단점 : 불량 데이터를 탐지하는 데별로 좋지 않습니다. 일부 일반적인 비트 오류로 인해 데이터가 손상 될 수 있습니다.
  • CRC32
    • 장점 : 그것은 구현하기가 상대적으로 쉽고, 빨리 작은 해시 출력 크기를 갖는다.
    • 단점 : 작은 해시 크기는 불량 데이터가 누락 될 가능성이 적음을 의미합니다.
  • MD5
    • 장점 : 대부분의 의도와 목적 (즉,하지 암호) 그것의 충돌 방지하십시오.
    • 이전 두 개보다 훨씬 느리고 더 복잡합니다. libs가 있습니다.
  • 패리티는
    • 프로 비트 : 정확한 오류를 감지하는 데 사용할 수 있습니다.
    • 단점 : 제대로 구현하기 어려울 수 있으며 데이터의 전체 크기가 커집니다.

은 골라 봐 :

관련 문제