Are LRC (Longitudinal Redundancy Check) or CRC (Cyclic Redundancy Check) of any use in modern day computing? I am currently learning about the history of Data integrity / Error detection.

In the old days of tape drives, LRC was used for error detection. They were also used (at certain point in time) for ensuring data integrity. But nowadays, the work that CRC or LRC did, has been mostly replaced by Hashes (MD5, SHA1 etc).

My questions are:


What were some of the reasons, why CRC or LRC was replaced by Message Digests?
Are these methods (LRC &amp; CRC) still applicable/safe in modern day computing?


P.S.: I am asking this question from a cryptographic/Computer Security standpoint.
I still see some uses of CRC in the case of encrypted protocols.
The secure parts are embedding hashes and/or MACs in a data field, then it checks the integrity of the whole message a second time with an extremely lighter algorithm (CRC).

This way in embedded cryptography with high speed, you avoid yourself cryptographical computation if the transmission failed and the CRC/LRC is wrong.

Anyway, if you don't look at performances and don't work with microcontrollers, you're right it should desappear behind modern hash and MACs.