Asp.net 安全传输用户输入的密码
我是ASP.NETMVC新手。我只是想知道,当用户登录到我的站点时,如何加密用户输入的密码?情况如下:Asp.net 安全传输用户输入的密码,asp.net,asp.net-mvc,security,Asp.net,Asp.net Mvc,Security,我是ASP.NETMVC新手。我只是想知道,当用户登录到我的站点时,如何加密用户输入的密码?情况如下: 注册用户访问我的站点并单击登录 输入他的注册用户名和密码,然后单击登录 浏览器将上述两个普通字符串(按代码)发送到服务器 在这里,如何将密码安全地发送到服务器?我无法理解它在ASP.NETMVC生成的HTML文件中是如何工作的。你能帮我理解这一点吗 谢谢,这与ASP.NET MVC或它生成的任何文件没有多大关系。从浏览器到服务器端代码,密码只是文本。尽管您至少应该在HTML中使用input
- 注册用户访问我的站点并单击登录
- 输入他的注册用户名和密码,然后单击登录
- 浏览器将上述两个普通字符串(按代码)发送到服务器
谢谢,这与ASP.NET MVC或它生成的任何文件没有多大关系。从浏览器到服务器端代码,密码只是文本。尽管您至少应该在HTML中使用
input type=“password”
(或发出密码的任何服务器端代码),以便浏览器知道如何将该值视为密码,理想情况下,浏览器和服务器之间的通道应使用SSL加密
一旦密码到达服务器,就要对其进行哈希运算。请尽快执行此操作,这样您就不会保留原始密码字符串,如果发生错误,该字符串可能会意外地被记录到某个地方。为了正确地对密码进行散列,可以对该主题进行大量阅读。我发现这很好地解释了整个事情的选择和必要性。主要的一点是,你永远不想知道用户的密码,你希望它是单向散列的,因为它无法检索
(这里需要记住的一点是,即使您运行服务器,您个人也不想知道密码。这一点的一个重要原因是,用户有在其他网站上重复使用密码的倾向。例如,有人可能无意中信任您的网上银行密码。这不是您的密码有多安全的问题服务器是指您自己公开的数据或任何数据,而是一个负责任地处理他人数据的问题。)
一般来说,处理散列密码的方式非常标准。您可以将其存储在数据中,用户登录时,您可以对其提供的密码进行散列,并将其与存储的散列进行比较。这样,您就不需要知道用户的实际密码,因为比较散列足以确定输入的密码是否正确那是一样的