解决方案 »

  1.   

    密码的MD5在服务器端做,不要在客户端做客户端和服务器端用加密的socket连接,可以搜一下SSL、TLS什么的,客户端如果是浏览器就搜一下HTTPS
      

  2.   


    密码的MD5在服务端做的原因是什么呢?
    我觉得密码的MD5在客户端比较好。TCP通信使用SSL加密方式,客户端和服务端采用3DES加密方式,使用相同的密钥即可,如果解密失败3次以上,可禁用该IP,这是程序实现的安全性。
    在服务器完善防火墙的过滤规则,也可以使用监控软件,查看是否有某一时间段,某一ip访问特别频繁。
      

  3.   


    MD5在客户端做的原因是不想传明文的密码,可以通过在服务器生成随机数,然后客户端上传的是一个 密码+随机数+用户名之类维码之后的MD5以提高安全性。问题一是在客户端与服务器互相传输时传输的数据的原内容会不会被人获取到?甚至在传输中数据被修改?
    这个很正常,但这个不是你要考虑的问题。如果真的要考虑,那建议用TLS问题二是如果有人攻击我的服务器的那个端口怎么办?
    用syn flood保护就可以,操作系统的一个配置。
      

  4.   

    密码的加密在客户端做还是在服务器端做,更多不是出于系统安全的考虑,而是对用户隐私的尊重,是你和用户之间相互信任的问题。如果你的传输数据本身没有使用SSL或者TLS之类的加密通道,那客户端的密码加密对系统安全没什么太大帮助。而且如果客户端是浏览器用了JavaScript来做加密,还额外暴露了加密算法。