8

중복 된 파일을 저장하지 않으려합니다. 그러나 우리의 md5 결과는 항상 BlobInfo와 다릅니다. md5Hash는 com.google.appengine.api.blobstore.BlobInfo에 대해 어떻게 계산됩니까

우리는 그것을 계산 방법 :

MessageDigest messageDigest = java.security.MessageDigest.getInstance("MD5"); 
    digest = messageDigest.digest(bytes); 
    String digestString = DigestUtils.md5Hex(digest); 

이 일치하지 않습니다 (new BlobInfoFactory().loadBlobInfo(blobKey)).getMd5Hash();

예 불일치로 :

google vs my own calculation: 
8cdeb6db94bc4fd156e2975fd8ebbcf2 vs 9003b37afbf3637de96c35774069453f 
65a25dafcba58d16d58a9c7585cc3932 vs 52383159f7d27417d50121aaee2728b5 
5cccc2d690fdc0c254234d5526876b34 vs 8196da9b6733daa60e08d927693df483 

그것은 프로덕션 서버에 있습니다. (우리는 dev 환경을 테스트하지 않았다.)

+0

devappserver 또는 prod에서이 작업을 시도하고 있습니까? –

+0

당신은 당신이 얻고있는 것과 당신이 기대하는 것을 게시 할 수 있습니까? 또한 어떤 파일을 업로드하고 있습니까? –

+0

두 질문에 답변했습니다. 파일은 일반적으로 pdf 및 이미지 (jpeg)입니다. –

답변

7

Sebastian Kreft는 주석에서 위의 논의와 같다.

복사 한 코드가 잘못되었습니다. 그냥해야한다 :

String digestString = DigestUtils.md5Hex(bytes); 

세바스찬 KREFT 항상 d41d8cd98f00b204e9800998ecf8427e해야 빈 파일의 MD5를 확인하기 위해 트릭을 사용!