【问题标题】:PHP Password Session Variable EncryptionPHP密码会话变量加密
【发布时间】:2014-07-06 00:36:11
【问题描述】:

我有一个典型的用户名/密码登录系统,其中用户名输入他们的凭据,但是授权由 SQL Server 连接确定,而不是使用查询来检查用户名和密码表。

$connectionInfo = array("UID" => $usr, "PWD" => $pwd, "Database" => $db); 
$oLink = sqlsrv_connect($Server,$connectionInfo);

我已经将所有设置都按预期工作,使用会话变量来保存用户名和密码(我对此感到不安全)。有没有办法为密码会话变量添加加密并实现一种方法让它在我的授权设置中起作用?

$usr = $_SESSION['USERNAME'];
$pwd = $_SESSION['PASSWORD']; 

谢谢!

【问题讨论】:

  • 我会更担心Session hijacking,然后专注于使用安全的密码存储/检索系统。你不应该使用这种方法。
  • 1) 为什么将密码存储在会话中? 2) 为什么你认为这不安全?
  • 我有多个页面连接到不同的数据库。一些数据库只允许某些用户访问它,因此连接到这些数据库的每个页面都使用不同的 $db 变量来进行身份验证。我想这是我必须处理的,因为我使用服务器连接进行身份验证,而不是使用用户名/密码进行数据库表检查。

标签: php session encryption login passwords


【解决方案1】:

如果您坚持使用您的方法,请尝试使用 md5 或 sha256。

例如:$newpassword= md5($pwd); $newpassword 将被加密。

但请注意,存储的密码也应该加密,如果两个加密匹配,则密码匹配。

PS : md5 不再是受信任的加密方法,因此请尝试使用 sha256 或更高版本。

【讨论】:

  • 但是如果我正在加密 $pwd 并使用新加密的 $newpassword 连接到数据库,加密的字符串将输入到: $connectionInfo = array("UID" => $usr, "密码" => $pwd, "数据库" => $db); $oLink = sqlsrv_connect($Server,$connectionInfo);
  • 你可以使用像runnable.com/UmmNdePavBUxAABZ/…这样的加密解密方法在会话中加密密码,然后在连接信息中使用之前解密
  • 哇。这是非常整洁的东西。谢谢!
猜你喜欢
  • 2010-12-14
  • 1970-01-01
  • 1970-01-01
  • 2015-12-24
  • 1970-01-01
  • 1970-01-01
  • 2012-05-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多