HTML is versatile enough that adding new attributes shouldn't break old browsers. In this case, I'm suggesting a hash attribute. For maximum versatility, I suggest including the hash type as well as value. Multiple hashes could be separated by a semicolon
Regarding the use experience, when a user places the mouse over a link with hash information, the browser should make this apparent in some way. This will allow the user to know that a link does contain hash information and that the browser is capable of interpreting the hash method specified.
|Note the addition of the "hash" in the pop-up status|
When a user downloads a file, one of the specified hashes is computed as the file downloads. When the download is complete, the hash specified by the link is compared to the hash calculated from the file. If the values do not match, the user receives a warning.