Alternatively you could use DosLib's
dos_filecrc function. Though you'd still need DosLib in the client's Acad installation, either as a separate install, or through your own installation.
The CRC32 would give you much the same as MD5, CRC64 would actually give more "accurate" calculations. Unfortunately AutoLisp uses signed 32bit integers so it's difficult to near impossible to calculate such in pure AutoLisp.
A further alternative would be to use randomized numbers with each character in the file as the consecutive seed values. Then use the random as index in a translation table. Combining the values into one through some form of math. I.e. you create a hash code for the file as a single large string, just note that most hash-code generators cannot guarantee that clashes won't occur. Even MD5/SHA/CRC cannot guarantee non-clashing numbers, but they tend to be extremely unlikely. Depending on the hash-code generation (especially the math used to combine the consecutive numbers) the likelihood of clashes can vary greatly.
What you're after is a hash which would calculate to a totally different number if only a single character in 1000's is different.