I am working on a proxy dll for DirectX 9, and eventually DirectX 11, which dumps textures uploaded via the cpu to files on the disk. Crucial to some of the features I wish to implement is the ability to identify which files correspond to which textures after relaunching the DirectX-powered program.
I didn't want to use memory addresses to identify the files due to the "random" nature of memory addresses between subsequent program launches.
I decided to identify the textures by hashing the raw data, essentially identifying them by their contents.
As such, my priority is not algorithm security, but rather the uniqueness of the hashes. I also need to be able to implement such an algorithm into my own code, or use a library with a lax license.