I've made a file crawler using python to read all my pictures in my computer (around 250 K files) and saving this information on a MySQL Database. I also save all the EXIF metadata for each file. 
Next, I'll like to add tags to them associating them to an unique ID but that is always the same for the same picture, just in case I run my crawler again and the file changes it's location or it's name.
For that purpuse I created a hash using string with relevant Exif information.
I've taken into consideration that over the years I've taken pictures with different camaras or phones, and some Exif tags are not present in all cameras. I've also have seen that most tags don't have many different values that can make the string unique.
Im using: 
Exif_Image_Length * Exif_Image_Width   (area of the picture)
+ Image_DateTime +   Image_Make + Image_Model
and making a hash out of that string. I still get duplicates hashes instead of unique hashes.
I'll love if someone has a better approach for what I'm trying to do.
Thanks in advance,
Pablo
EDIT: I need to get an unique ID for images that every time I proccess that filename / exif metadata I get the same ID considering the filename and location might change (but EXIF data will remain intact)
did you get any new ideas? In photos with exif data there are sometimes some unique ids. One should be always the same even if your for example convert raw => psd => jpg => psd => jpg .
Did you really get duplicates when all the data fields you mentioned are set?
From the view of an photographer:
Width + Height is pretty useless (always the same for on camera, except its an cropped image)
You could use serialnumber of the camera including lens serial
Thank's to creation time the only duplicates should exist because of an short burst of photos with an short intervall.
Possible Errors:
Modification of date/time (for example sommer time conversion)
Manually created files or using clipboard or some weird stuff.
Its just really an duplicate.
Get unique ID for pictures using Exif metada