one idea... use a salt with a MD5(file contents) + pseudo random salt based on others informations this give a nice salt...
example... with different salts: file1 contents = file 2 contents salt of 1 = MD5(MD5(file1 contents) + file1 name) salt of 2 = MD5(MD5(file1 contents) + file2 name) or if you want same salts salt of 1 = MD5(MD5(file1 contents) + "fixed text") salt of 2 = MD5(MD5(file2 contents) + "fixed text") since file1 contents = file 2 contents the salt will be the same, and since information and salt is the same the crypt function will return same values (if it's not based in another information, ie time of crypt function)