Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 为什么这不是加密中的一个巨大缺陷?_Security_Web Applications_Encryption_Passwords_Password Encryption - Fatal编程技术网

Security 为什么这不是加密中的一个巨大缺陷?

Security 为什么这不是加密中的一个巨大缺陷?,security,web-applications,encryption,passwords,password-encryption,Security,Web Applications,Encryption,Passwords,Password Encryption,我一点也不懂加密;在过去,我只是信任它,但如果我正在编写一个可以上线的web应用程序,我想我应该试着更好地理解它 我的问题是: 假设我被要求输入密码登录任何网站。然后必须将密码或其某些功能发送到服务器,以便服务器可以将其与存储在那里的加密密码进行比较 要么密码以明文形式发送,在这种情况下,我认为它不安全,因为有人可以截取并读取它,这是一件坏事,要么它以加密格式发送,在这种情况下,有人可以截取密码,即使他们无法读取密码,他们也可以通过向站点发送加密字符串假装是你,这是再好不过的了。类似地,如果黑客

我一点也不懂加密;在过去,我只是信任它,但如果我正在编写一个可以上线的web应用程序,我想我应该试着更好地理解它

我的问题是:

假设我被要求输入密码登录任何网站。然后必须将密码或其某些功能发送到服务器,以便服务器可以将其与存储在那里的加密密码进行比较


要么密码以明文形式发送,在这种情况下,我认为它不安全,因为有人可以截取并读取它,这是一件坏事,要么它以加密格式发送,在这种情况下,有人可以截取密码,即使他们无法读取密码,他们也可以通过向站点发送加密字符串假装是你,这是再好不过的了。类似地,如果黑客获得数据库的副本,他将能够发送加密密码的副本并获得特权。这也是一件坏事。

你需要仔细阅读

HTTPS/SSL 密码散列 你提到的问题已经得到考虑和解决

密码以纯文本形式发送

不是。它通过HTTPS发送,即加密

或者它是以加密格式发送的,在这种情况下,有人可以拦截它,即使他们看不懂密码,他们也可以通过向站点发送加密字符串来假装是你

不,HTTPS会话不能像那样被劫持。双方正在协商一个共享密钥,您不能只是拦截和重播。服务器发出的挑战是中间人无法令人信服地回答的

请注意,这取决于公钥基础结构,也就是可信证书链。如果有人可以伪造SSL证书或让您接受自签名证书,则您无法确定您正在与谁通话。那么,中间人是可能的

类似地,如果黑客获得数据库的副本,他将能够发送加密密码的副本并获得特权

是的,如果黑客得到数据库的副本,那就是一个问题

但是,发送加密密码是没有用的。密码检查的工作原理是通过加密连接发送原始密码,然后将其与数据库中存储的哈希进行比较


如果一个黑客得到了数据库,他会做的就是在本地强行猜测密码,如果幸运的话,他可以作为用户登录。幸运的是,如果密码是长而随机的,并且经过适当的哈希和盐析,那么这个过程仍然需要很长时间。不再有足够长的时间可以完全防止破解,但仍然有足够长的时间可以让您更改密码。

这就是为什么我们有https。真的。。。阅读有关SSL/TLS的内容。关于这个问题似乎是离题的,因为它是关于安全网络协议的