如何在客户端上模糊密码并在服务器

时间:2017-02-01 14:50:38

标签: c# .net asp.net-web-api

我知道这不是一个好习惯。

我使用fiddler,我通常在纯文本中看到密码,即使是在https中也是如此。我想让客户端在发送密码之前快速模糊密码。当服务器收到请求时,它应该能够对其进行反混淆处理。

通常我在fiddler中看到发布到服务器的内容

{
    "secure_username": "mmatiasn",
    "secure_password": "chickennuggetboy" //Plain text password I hate to see...
}

我希望看到发布到服务器的内容

{
    "secure_username": "mmatiasn",
    "secure_password": "d162314" //Obfuscate password that the server can deobfuscate.
}

我正在开展一个小项目,以了解有关dotnet的更多信息,目前只能通过我拥有的小型Intranet网络访问。我也不想设置https。

1 个答案:

答案 0 :(得分:4)

你没有,只需使用https这是标准(有原因)。

  1. 没有必要这样做,如果那时候那将是标准做法。
  2. 要对密码进行哈希处理,您需要使用不应离开服务器的salt(哈希不应该,但您不需要它来创建新哈希)。
  3. 使用https并在请求的邮件正文中发送密码(使用POST或PUT)。是的,如果您是客户,您可以看到内容,如果您的PC是设计的,则可以看到它们之间的提琴手。如果您在客户端之外使用嗅探器或某些东西拦截流量,那么您无法看到加密的内容。

      

    ...只能通过我拥有的小型Intranet网络访问。我也不想设置https。

    为什么呢?如果它是一个内联网,那么使用自签名证书(免费),这个证书设置相对简单,几乎没有时间和更少的时间(更不用说安全)会像你建议的那样发展任何东西。