Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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
Php 登录url中的BCrypt哈希密码_Php_Mysql_Encryption_Bcrypt - Fatal编程技术网

Php 登录url中的BCrypt哈希密码

Php 登录url中的BCrypt哈希密码,php,mysql,encryption,bcrypt,Php,Mysql,Encryption,Bcrypt,我的应用程序使用一个登录/注册系统,该系统使用BCrypt加密密码。当用户注册时,密码将使用BCrypt加密,然后存储在mysql数据库中。但是,当用户登录时,出于安全原因,我希望密码也被加密。我可以在将密码放入登录url之前对其进行加密,但是您可以比较2个哈希值,这样就不起作用了 如何在登录请求(url)中也加密密码 我没有很好地解释我的问题,所以我将尝试更详细地解释它。在应用程序中,我有一个发送url请求的脚本,例如site/login.php?username=name&password=

我的应用程序使用一个登录/注册系统,该系统使用BCrypt加密密码。当用户注册时,密码将使用BCrypt加密,然后存储在mysql数据库中。但是,当用户登录时,出于安全原因,我希望密码也被加密。我可以在将密码放入登录url之前对其进行加密,但是您可以比较2个哈希值,这样就不起作用了

如何在登录请求(url)中也加密密码

我没有很好地解释我的问题,所以我将尝试更详细地解释它。在应用程序中,我有一个发送url请求的脚本,例如site/login.php?username=name&password=password
当我在cpanel上查看访问者的日志时,我可以读取&password字段,这样我就知道了用户的密码。这是我想阻止的事情,我想这样做,即使我在任何地方都看不到用户密码

我想你在登录表单中使用“GET”方法而不是“POST”是做错了

学校:

切勿使用GET发送敏感数据!(将在URL中可见)

当您将登录详细信息发送到将检查凭据的php页面时,如果表单使用,则url中不会显示密码

编辑:考虑到评论中所说的内容,尽管它看起来更安全,而且是W3推荐的,但POST并不比GET和更安全,如下所示:


HTTPS是唯一合理的安全机制


通过HTTPS连接以帖子的形式发送密码,而不是在URL中

使用HTTPS将加密URL地址部分之外的所有内容

即使在使用HTTPS时也使用POST的原因是,许多服务器记录URL,而URL通常包括密码。显然,在服务器日志中输入密码是一种安全故障

在发送到服务器之前不要对密码进行散列,这只会使散列成为密码


在服务器上使用
BCrypt
散列密码进行存储是一种安全的方法,就像
password\u hash
password\u verify
一样,这两种方法在PHP中都很常见。

为什么要在url中发送密码?“但是,当用户登录时,出于安全原因,我也希望对密码进行加密”-嗯。。。它已经散列了。哈希和加密是两种不同的动物。问题还不清楚,IMHO。他的意思是:他想加密用户在登录表单上输入的密码,然后将此密码作为URL参数发送,比如:
Login.php?u=username&p=encrypted\u Password
,顺便说一句@NorthSeaDevs为什么现在要发送加密URL中的密码?您可以在同一页上处理/验证登录凭据,然后简单地重定向到另一页:如果需要的话。唯一明智的方法是使用HTTPS连接。@Poiz如果他们使用的是他们应该使用的SSL套接字,GET/POST无关紧要。这不是不使用POST的原因,有人可以嗅探POST请求,就像嗅探GET请求一样简单。不同之处在于,Web服务器不会在访问日志中记录POST请求的内容,但会记录GET请求。此外,在SSL套接字中使用GET/POST(即使是明文密码)也同样安全。@JamesHalsall谢谢,我不知道这两种请求类型都可以很容易地被嗅探到!POST中的数据不再比GETTPS中的数据更安全。HTTPS是唯一合理的安全机制