用户点击登录时,获取输入密码立即用sha和md5加密,共2次。取数据库里面的密码是sha加密后的,读出后再使用md5加密。然后2个字符串比较。这是他们提出的传输加密客户要求这样做,可我不太理解为什么,我想请问下这样做有意义吗?希望大家帮帮我。

解决方案 »

  1.   

    sha或者md5并不是加密,而只是散列。上一把锁如果觉得不放心,就上两把呗。同时由于重复了一次,使得碰撞的可能性更低(宇宙再次爆炸之后?)。
      

  2.   


    lz说了,数据库里存的是已经进行sha处理的值,而不是密码明文。
      

  3.   

    仅比较散列值的目的,原本就是防止有人(比如说软件开发者自己)通过进入服务器端系统而获取密码明文。至于说为什么要使用一次md5运算,意思确实不大。只能说加大黑客根据sha结果值来反向找到密码明文的难度?