web密码加密
A. Web前端密码加密是否有意义
没有意义
密码前端的加密根本没有意义,密码系统的安全性没有提高,但会造成不必要的麻烦。
首先,前端开发人员需要知道前端系统的控制完全掌握在用户手中,也就是说前端所做的事情和用户拥有完全的控制。据称,前端做了MD5,后台不必做,这种方法会有什么后果?如果有一天,系统数据库泄露,黑客直接获得每个用户的密码的MD5值,但这一次,因为黑客知道密码的哈希的前面,所以他不需要鼓风的MD5对应什么是原创,而是直接修改发送到服务器的客户端请求的在它的数据库密码字段MD5,符合数据库中的记录,你可以直接登录。这与直接存储明文密码没有区别!!!所以不管前端密码是否加密,后台使用哈希算法的安全内容转换都是必要的。(MD5不能使用BCrypt的,我以前回答类似:用图形表现,当前快速发展的快速哈希算法已成为不安全吗?)有一个人同意这个答案,我希望你不要被错误的答案误导。对方的回答,Linh说,是为了防止原始密码被利用在一个不安全的HTTP连接。但问题是,因为你的登录系统接受密码代替原来的,窃听者根本不需要原始密码,只要哈希结果可以伪造请求登录系统。这样做只会防止攻击者在社交攻击时使用原始密码,而不会提高网站的安全性。所以不管前面密码是不是加密的,使用HTTPS安全连接登录都是很有必要的。
B. Web前端密码加密是否有意义
密码在前端加密完全没有意义,对密码系统的安全性不会有任何提高,反而会引发不必要的麻烦。首先,做前端开发的人需要知道,前端系统的控制权是完全在用户手里的,也就是说,前端做什么事情,用户有完全的控制权。假设如同 @陈轩所说,前端做过了md5,后台就不用做了,这个做法会有什么后果?如果某一天,这个系统的数据库泄露了,黑客就直接拿到了每个用户的密码md5值,但此时,由于黑客知道密码是在前端进行哈希的,所以他不需要爆破出该md5对应的原文是什么,而是直接修改客户端向服务器发出的请求,把密码字段换成数据库中MD5就可以了,由于与数据库中记录一致,直接就会登录成功。这跟直接存储明文密码没有任何区别!!!所以不管前端是不是加密了密码,后台使用安全的哈希算法对内容再次转换是非常有必要的。(MD5可不行,要用bcrypt,我之前回答过一个类似的:随着显卡性能的高速发展,目前的快速Hash算法是否已经变得不够安全了?)这个回答还有一个人赞同,希望大家别被错误答案误导了。另外一个答案 @林鸿所说,在非安全HTTP连接上,可以防止原始密码被窃听。但问题在于由于你的登录系统接受的哈希过的密码,而不是原文,窃听者根本不需要原始密码,只要通过哈希结果就可以伪造请求登录系统。这样做只能防止被窃听到原文的密码被攻击者用在社会学攻击上,而不能改善该网站的安全性。所以不管前端是不是加密了密码,使用HTTPS安全连接进行登录都是非常有必要的。以上我说的两点,合起来看就是:不管前端是否加密了密码,都不能以此为假设,让后端设计的安全等级下降,否则就会有严重的安全问题。实际上,前端进行密码加密,可以看做帮助用户多进行了一次原文的转换,不管用了什么加密算法,算出来的结果都是密码原文,你该如何保护用户的原始密码,就该如何保护此处的加密结果,因为对你的登录系统来说,它们都是密码原文。以上这些,说明了密码加密是没有什么意义的,接下来,我要说明前端加密会带来什么问题。有些人会认为前端进行了加密,可以降低后台的安全性需求,这种错误的观念会造成系统的安全漏洞。实际上,你不能对前端做任何的假设,所有跟安全相关的技术,都必须应用在后台上。前端进行加密会造成页面需要js脚本才能运行,那么假设你的系统需要兼容不能运行js的客户端,就必须再设计一个使用原文的登录接口。由于前端是不是加密,所有安全机制都必须照常应用,所以为系统增加这样的复杂性是完全没必要的,即使传输明文密码,只要正确使用了HTTPS连接和服务器端安全的哈希算法,密码系统都可以是很安全的。
C. Web前端密码加密是否有意义
在前端对密码做一次MD5,看起来是防止明文传输了,事实上只有一种情况下它可以提高用户的安全性,那就是用户在别的网站上也用和你的网站一样的密码。并且在任何情况下都提高不了你自己网站的安全性。前面说的传输过程、内存里、日志里……这些地方没有明文密码,其实都只能保护用户本身的利益,对于自身服务的安全性是没有提高的。因为,既然传输过程不是加密的,那么包随便发,至于发一个abc123,还是发一个,对你的程序没有任何的区别,这时候你的程序都是小绵羊。这个过程可以看做,你的用户都用了32位字符串的密码,如是而已。从事实意义上讲,在所有网站上用同样密码的用户非常多,所以可以勉勉强强的说,这是有一丁丁点的意义的。但即使在前端做了签名,因为hash暴露了,也还是很容易被撞库。但是,对安全性没有提高,就不做了吗?当然要做,因为要应付审计。
D. javaweb关于客户端密码md5加密后被抓包工具抓取的问题
你描述的问题有点像CSRF攻击,而且你提出来的办法有一定的局限性,比如说如果黑客是同一个局域网的人,这种判断ip地址的方法可能会失效。
其实只要使用https就不存在这种问题,就算是中间被人截取了加密的密码,然后用加密的密码提交表单,最后与后台数据库匹配成功也没有用。因为匹配成功之后,服务端给黑客发送的信息也是经过加密的,但是黑客是不知道密钥,不知道如何对这段信息进行解密,所以不会登陆成功的。这把密钥只有客户端和服务端知道,所有题主担心的问题用https能够解决,这是我的一点见解。
E. HTTPS通信时,Web服务器收到加密后的“对称加密用的密钥”,使用什么对其进行解
https其实是有两部分组成:http + SSL / TLS,也就是在http上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密,解密,验证的,且看下图