Incorrect MD5 Digest for Thumbnail File Name

David Bowen David at MyForest.Com
Sun Apr 23 09:14:40 BST 2006


Hurrah. A nights sleep (followed by a nice cup of tea) has helped me realise
that it's the space in the path that is the problem - the call to encodeName
is important.

I should have been passing:

file:///files/local/secure/david/My%20Documents/bookmarks.html

which does yield "a6d43f0e68cbab3fd3b80713afce3916".

Sorry to have bothered you.

David Bowen



David Bowen (David at MyForest.Com) wrote:
>
> Sorry to mail you all. I asked on #konqueror and <apachelogger> was kind
> enough to direct me to this mailing list.
>
> I'm trying to re-use the KDE thumbnails. The quick version is: "My MD5 digest
> is different to the file name of the thumbnail generated by Konqueror."
>
> In detail:
>
> I'm using the "Thumbnail Managing Standard" as my guide:
>
> http://jens.triq.net/thumbnail-spec/
>
> Jens says that "file:///home/jens/photos/me.png" gives
> "c6ee772d9e49320e97ec29a7eb5b1697". I concur with this - using both the md5sum
> program and my own Java code.
>
> I then get my code (and md5sum) to generate a digest for:
>
> file:///files/shared/secure/david/My Documents/bookmarks.html
>
> and we have "223e9e18d9949be1d93742ef755d75dc". Unfortunately, when I look in
> "~/.thumbnails" I see the file generated by Konqueror is called
> "a6d43f0e68cbab3fd3b80713afce3916.png". I'm not sure what is causing the
> discrepancy. I've tried a number of different URIs but none of them give
> "a6d43f0e68cbab3fd3b80713afce3916".
>
> In an attempt to see what I was doing wrong I looked at the preview job code
> at:
>
> http://lxr.kde.org/source/KDE/kdelibs/kio/kio/previewjob.cpp?v=3.5-branch#384
>
> (I'm running KDE 3.5.2-0.1.fc5 Red Hat). It looks much like my Java code
> except for the call to "encodeName" which can be found at:
>
> http://lxr.kde.org/source/KDE/kdebindings/kjsembed/builtins/qfile_imp.cpp?v=3.5-branch#546
>
> This then leads to QFile::encodeName at:
>
> http://doc.trolltech.com/3.3/qfile.html#encodeName
>
> and I'm afraid that's where things get beyond my understanding.
>
> Looking on the kfm-devel mail archive I found a single message which suggests
> things are as I expect:
>
> http://lists.kde.org/?l=kfm-devel&m=101732994904708&w=2
>
> So clearly I'm doing something wrong as the URI I'm supplying to the MD5
> algorithm is not the same as the Konqueror one. I'm going to take a punt and
> post the Java I'm using (in a Java Server page). I'm not looking for help with
> that - I'm just adding it as reference.
>
> 	import="java.util.*"
> 	import="java.security.MessageDigest"
>
> 	MessageDigest md = MessageDigest.getInstance("MD5");
> 	String uri ="file:///files/shared/secure/david/My Documents/bookmarks.html";
>      	md.update(uri.getBytes());
>      	byte[] md5Hash = md.digest();
>
> 	StringBuffer sb = new StringBuffer();
>         for (int byteIndex = 0; byteIndex < md5Hash.length; ++byteIndex) {
>             sb.append(Integer.toHexString((md5Hash[byteIndex] & 0xFF) |
> 0x100).toUpperCase().substring(1,3));
>         }
> 	String md5HashString =sb.toString().toLowerCase();
>
> I'd be grateful if someone could point me in the right direction to understand
> the correct format for the URI. I should also mention that this file is on an
> NFS share just in case some extra resolution takes place in such a case.
>
> Thanks for your time
>
> David Bowen
>
>
>





More information about the kfm-devel mailing list