前端 md5 加密用户名密码的流程

如题,在百度谷歌前端md5加密感觉都是比较简单的引入一个md5.js然后调用一下方法,但是加密的原理和流程不太清楚

阅读 9.5k
5 个回答

我感觉是题主误解了加密的原因,不管什么摘要加密算法,算法都是是固定的,不存在说谁家独一份,因为没意义,JS加密只能放在前端是明文的。

后台拿到加密后的密码,是反解不出来的,因为是摘要加密,而不是对称加密。服务端在用户注册的时候就保存了一份加密后的密码,两相对比,就知道是否是正确的。这样即使DB被泄露,至少还有保证没有泄露真实密码,一般为了添加安全性,会额外在密文的基础上加盐再做一次加密,这是题外话。

加密的目的是为了防止网络劫持。(并不能防止木马攻击。)
在提交之前做好加密,在网络中传输的就是密文,这样即使有人劫获账户密码,但是并不能拿到真实的密码。

你可能会疑惑,反正拿到了加密后的密码,它只要模拟个POST请求就可以了伪装用户了。
首先,如果你的网络被劫持,你做什么事都不存在安全一说,所以不要胡乱链接免费WIFI
其次,加密的原因是不让你的账户密码被泄露,因为劫持者可以拿着你的用户密码去碰撞其他资源,绝大多数人都是同一套账户密码。当然即使只能拿到加密后的密码,也可以采用HASH碰撞来逆推密码,不过这个成本就高了,而且不同的网站会有不同的加密算法,逆推不一定有意义。

去看下密码学啊...

你要看原理 你就把md5.js的源码看一遍。。。

md5是签名,不是加密

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题