The on demand discs we do not have any sort of disc id for, for the same reason - any inputs on what would make a useful disc id for those?
CloneBD creates a hash over a small region in the middle of the largest m2ts file (a file, that is most likely to be part of the main movie, unique to the disc).
Additionally over all mpls and clpi files (sorted). This is because it needs to differentiate between the same disc having been altered in different ways by AnyDVD (trailers removed, speedmenu added, ...).
In your case the latter would make less sense, I guess.
Basically, the only components that are reliably present on a BD/UHD are clpi, mpls, m2ts, index.bdmv and MovieObjects.bdmv - everything else is optional.
I don't know, if you need the hash to be independent of whether the disc is encrypted or not.
If so, the options are fewer, BUT:
The clpi files are bound to be fairly (actually 100%) unique. Not only m2ts file sizes and stream languages are in there, but also the CPI-Maps for time-offset calculation and these are fairly large and I'd say it's completely impossible for two discs to accidentally have the same values.
EDIT: clpi files - other than mpls - are rarely modified by AnyDVD. Only the "remove trailers" option and adding Speedmenu will modify or remove/add clpi files.
If you want to identify a disc independently of what AnyDVD has done and whether it has been decrypted or not, I'd say:
gather all clpi files corresponding to fairly large video files (10 minutes or more), sort them and then hash over them.
That should give you a pretty robust hash, that really tells you which disc it is, no matter if anything has preprocessed it (other than compression or remuxing).