right now application is storing a file data in database and we are considering instead to store a link (http, ftp, etc) to the file and its checksum. We will only provide a service and the service consumer is supposed to provide the URI and its checksum. As we do not want to store the file, we won't be able to calculate a checksum, checksum is needed because we want to provide some kind of proof that the initial file has not been tampered with.
Is this applicable, if we require client apps to calculate checksum lets say in MD5 or SHA-256 would it give the same result on all environments (linux, windows, macOS, etc.), would it differ by the algorithm calculating the checksum. Or should we receive the file data and calculate its checksum in our app to make sure that a strong and unified checksum calculation method is applied, and provide a tool to calculate it again when user has access to file so they can verify that it is the original file.