<分区>
我看过一个 c/c++ 程序,它使用 CRC 来双重检查从 TCP 套接字接收到的数据。 我不明白为什么在应用程序中使用 CRC。我认为只有第 2 层到第 4 层需要 CRC,即链路层或传输层(也可能是网络层?)。
但是今天,我的同事告诉我,CRC 有助于防止安全攻击。他怀疑是否存在更改数据包的攻击者。这就是他为什么在TCP套接字程序中需要CRC校验的原因。
但我还是不能100%同意他的看法。我认为一个能够改变数据包的攻击者,我相信他也可以操纵 CRC no 被抓到。
我认为 RSA 就是为了这种安全。 HTTP中是HTTPS,TCP中是SSL。 如果是这样 - 如果我是对的 - 不需要 CRC。而不是 CRC 加密算法才是真正需要的。
我错过了什么吗? CRC在TCP套接字编程中有用吗?