一个安全性要求比较高的场合, 我用 SSL 通信, 同事问为什么不采用将通信的数据加密, 然后用 socket 传输. 这样简单很多, 而他用 PHP 实现需要 CERT 的 SSL 比较复杂. 单纯加密传输的数据, 是可以受到重放攻击的. 关于重放攻击, 可以参考: 重放攻击及防御方案 . SSL 就不会, 因为 SSL使用序列号来保护通讯方免受报文重放攻击。这个序列号被加密后作为数据包的负载。在整个SSL握手中中,都有一个唯一的随机数来标记这个SSL握手,这样重放便无机可乘。 可参考: SSL中间人攻击 . 这跟单纯的不能采用加密用户的密码登录是同一个道理.