이 코드는 32비트 정수 사용을 조정한 루비의 번역입니다. 이 코드는 동일한 테이블을 사용하기 때문에 RFC 1952 섹션 8 및 PNG 부속서 D의 예제와 유사하게 발생합니다. 다음은 예제 클래스입니다. 그것은 매우 간단합니다. 적절한 경우 잘라서 프로젝트에 붙여넣을 수 있습니다. 이를 사용하려면 체크섬이 필요한 데이터가 포함된 바이트 배열을 전달합니다. 그것은 하나의 바이트로 다시 밖으로 8비트 체크섬을 뱉어 것입니다. 기본적으로 체크섬을 계산하는 데 사용할 다항식으로 전달하는 새 클래스 인스턴스를 만듭니다. 나는 다른 모든 것이 그물의 다른 곳에서 꽤 잘 표현되어 있다고 생각하기 때문에 여기에 8 비트 다항식만 포함시켰습니다. 생성 Table 함수를 호출하고 속성 setter를 사용하여 테이블을 설정하여 단일 클래스 인스턴스에 대한 테이블을 다시 계산할 수 있습니다.
해석 모드에서 이 코드를 실행:[[Media:여기에 서식이 지정되지 않은 텍스트 삽입]][[파일:[예제.jpg][http://www.example.com 링크 제목]]] 예제에서 사용 중인 경우:
사용 중(FileStream fs = File.Myfile.txt("c:myfile.txt", FileMode.Open)) 에서 crc32.Compute(fs)) 해시 += b.ToString("x2")) 토로어();
그러나 내가 보는 유일한 Compute 메서드는 정적이며 FileStream 개체를 가져 가지 않습니다. 언어 내에서 순환 중복 검사를 파생하는 방법을 보여 줍니다. 언어가 비트 이동 연산자가 없기 때문에 Visual Basic에는 이상적인 작업이 아닙니다(물론 에뮬레이션할 수 있지만 속도가 느립니다). 그런 다음 다시, VB에 의해 지원되는 유일한 플랫폼은 마이크로 소프트 윈도우 (32 비트 하위 시스템)이기 때문에, 우리는 윈도우 API가 우리를 위해 작업을 수행 할 수 있습니다. RtlComputeCrc32() 윈도우 XP 이후 사용할 수 있었고 여전히 윈도우 10에 존재한다. CRC RevEng 프로젝트의 `파라메트라이즈드 CRC 알고리즘 카탈로그`는 그렉 쿡이 관리합니다. 카탈로그의 값은 구현의 정확성을 확인하는 단위 테스트에 사용되었습니다. 블록 처리가있는 HashAlgorithm로 사용할뿐만 아니라 모든 호출이 테이블을 빌드하는 오버 헤드가 있지만 정적 메서드 Compute에 액세스 할 수도 있습니다.
어느 옵션도 적합하지 않은 경우 당신은 `n이 하는 일에 그것을 스플라이스 잘라해야합니다. 그렇지 않으면 시작값이 0이 아닌 값에 대해 전체 버퍼를 해시하지 않습니다. 환호, 푸이. 이 라이브러리는 로버트 Važan에 의해 Crc32C.NET 포트하지만 Crc32 알고리즘입니다. 또한 이 라이브러리에는 관리 코드에 대한 최적화가 포함되어 있으므로 다른 Crc32 구현보다 훨씬 빠릅니다. (그러나 필요한 경우 두 배 빠른 .NET 버전인 네이티브 구현(투명 .net 래퍼 포함)을 추가할 수 있습니다. 며칠 전 . NET에서 CRC-32를 계산해야한다는 것을 알게되었습니다. 너무 많은 시설을 사용할 수 있었기 때문에 나는 그것을 할 수있는 내장 이 없다는 것을 조금 충격을 받았다. 기본값인 초기 CRC 값의 사양을 0xFFFFFFFF로 허용합니다.
속도 및 간결함(다음 가독성/들여쓰기)에 최적화되었습니다. 서명되지 않은 ints는 CLS를 준수하지 않기 때문에 VB.NET 잘 작동하지 않으며 HashAlgorithm를 구현하면 사람들이 서명에 적합하다고 생각하도록 유도 할 수 있습니다. CRC-32의 WinZIP, RAR 등의 라인을 따라 체크 합계에 대 한 좋은 하 고 확실히 암호 근처에 와서 대신 SHA-512 또는 이와 유사한 고려 해서는 안 됩니다. 야, 감사합니다 많은, 나는 거기 바보 코드를 많이 발견하고이 목적을 위해 작성 된 최고의 코드입니다.