2011-09-23 3 views
0

MSDN은 CryptVerifySignature() 이후에 HCRYPTHASH 개체를 다시 사용하여 더 많은 데이터를 해싱 할 수 없다고 말합니다. 대신 CryptDestroyHash()CryptCreateHash()을 사용하여 다시 만들어야한다고합니다. Reusing 정말 실패합니다.CryptVerifySignature() 해시 객체를 재사용 할 수 있습니까?

누구나 이러한 호출을 저장할 수있는 해킹에 익숙하거나 실제로 불가능합니다.

+1

** 'HCRYPTHASH'생성 및 파괴는 내 기계에서 20 사이클 작동입니다. ** 비싸지 않습니다. 재사용하는 것이 좋지만 내부 상태를 유지합니다. – CodeAngry

답변

1

데이터 구조가 CryptVerifySignature()과 통화하는 것보다 융통성이 있다고 상상해보십시오. 그것은 (아마도 불연속적인) 데이터 스트림 (CryptHashData()을 통해)에서 작동하도록 설계되었습니다. 즉, 해쉬의 현재 값에 어떤 상태가 저장되어 있음을 의미합니다. 따라서 스트림에서 (부분적으로) 사용하면 상태가 취소 불가능하게 변경되므로 다른 스트림에서 사용할 수 없습니다.

HCRYPTHASH 구조에 대해 reset 함수를 제공 할 수 있었지만 ... 그렇지 않았습니다.