8

Staramy się unikać zapisywania zduplikowanych plików. Jednak nasz wynik md5 zawsze różni się od BlobInfo.Jak oblicza się md5Hash dla com.google.appengine.api.blobstore.BlobInfo

Jak obliczamy go:

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

To nie pasuje: z (new BlobInfoFactory().loadBlobInfo(blobKey)).getMd5Hash();

Przykład niedopasowania:

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

Jest na serwerze produkcyjnym. (nie testowaliśmy środowiska dev)

+0

Próbujesz to na serwerze devappserver lub w prod? –

+0

Czy możesz również opublikować, co otrzymujesz i czego oczekujesz. Ponadto, jaki rodzaj pliku ładujesz? –

+0

Odpowiedzi na oba pytania. Pliki są zwykle pdf i obrazy (jpeg). –

Odpowiedz

7

Sebastian Kreft ma rację w powyższej dyskusji w komentarzach.

Kod, który skopiowałem, jest nieprawidłowy. powinien on być po prostu:

String digestString = DigestUtils.md5Hex(bytes); 

Sebastian Kreft stosowany trick aby zweryfikować md5 pusty plik, który zawsze powinien być d41d8cd98f00b204e9800998ecf8427e!

Powiązane problemy