2013-03-13 64 views
0

我目前正在寻找使用bCrypt来加密我的项目中未来用户的密码。检查使用bCrypt加密的密码。是否需要通过电线发送密码?

它看起来非常强大,但这里是我的关心 -

  • 在网站上,创建一个帐户。服务器将b密码并存储它的散列。 test - >$2a$12$4PhCN62AmALB7e.Sv2w9w.AP/JZ28l.dZldU5iHyupY2w5wPz9o.u
  • 现在检查您的密码,您只需检查返回BCrypt.Net.BCrypt.Verify("test", "$2a$12$4PhCN62AmALB7e.Sv2w9w.AP/JZ28l.dZldU5iHyupY2w5wPz9o.u")以确保匹配。

在使用客户端应用程序来处理此Web服务器和相同的数据的情况下,是否需要通过电线发送密码以使服务器匹配它的有效性?客户端请求散列并让服务器将它发送给客户端是否可行,这样客户端可以执行散列并验证它?

+0

你如何让客户验证自己的密码? – Blender 2013-03-13 01:42:47

+0

@Blender - 如果Web服务器向客户端发送期望的哈希,客户端可以检查输入的密码是否与哈希匹配。我错了吗? – The1nk 2013-03-13 01:45:18

+3

什么阻止客户说谎? – Blender 2013-03-13 01:45:43

回答

3

您可以通过使用SSL(例如https)阻止通过线路发送明文密码。密码将是明文,但连接将是安全的,并且只有服务器和客户端才能够解码该连接中的信息。

+2

SSH还是SSL?有很大的差异! – IDWMaster 2013-03-13 02:46:49

+0

@IDWMaster我不知道它们有什么不同,只是它们的使用方式相似 – Patashu 2013-03-13 03:00:38

+1

有很大的不同。 SSL是Web浏览器中使用的技术,用于“保护”通信以“防止窃听者”。它使用公私密钥加密技术,并依赖受信任的根授权机构来验证网站的身份。另一方面,SSH用于加密文件传输,保护GIT存储库,远程访问Linux终端。 – IDWMaster 2013-03-14 04:25:08