Windows Mobile 5에서 C#을 사용하고 있습니다.이 프로그램은 인터넷에서 대용량 파일을 해시 값과 함께 다운로드합니다. 그런 다음 다운로드 된 데이터의 해시 값을 계산하여 예상 된 해시 값과 비교합니다. 아이디어는 전체 파일이 손상되지 않았 음을 확인하는 것입니다.큰 데이터 크기를위한 메모리 효율적인 해시 알고리즘
파일 크기가 커서 파일의 전체 내용을 메모리에 바이트 배열로 저장하면 장치의 메모리가 부족할 수 있습니다. 그러나 바이트의 해시를 계산할 수 있도록이 작업을 수행하려고합니다. 한 번에 모든 바이트를 메모리에 저장하지 않고도 해시를 계산할 수 있습니까? 가급적 SHA1Managed 클래스를 사용하여 SHA1 해시를 계산하고 싶지만 필요한 경우이를 변경하려고합니다. 스트림을 받아들이는 SHA1Managed.ComputeHash() 메서드의 오버로드가 있음을 알았지 만 모든 바이트를 메모리로 가져 오는 것보다 적은 메모리를 사용하는지, 그리고 내가 알고있는 메모리 프로파일 러를 알지 못합니다. NET CF는 완전히 쓸모가 없습니다. 여기
데이터가 이미 파일에 기록 된 경우이를 위해 좋은 스트림 구현은 무엇입니까? FileStream을 반환하는 File.OpenRead (fileName)을 사용하는 것이 좋습니까? –
FileStream이 정상적으로 작동해야합니다. –
Stream 구현이 전체 파일을 메모리로 가져 오는 경우 메모리가 부족한 곳에 충분한 크기의 파일로 시도해 보았습니다. 고마워! –