Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.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
仅使用密码中的3个随机字符进行PHP AD身份验证_Php_Active Directory_Ldap - Fatal编程技术网

仅使用密码中的3个随机字符进行PHP AD身份验证

仅使用密码中的3个随机字符进行PHP AD身份验证,php,active-directory,ldap,Php,Active Directory,Ldap,我有一个网站,如果用户成功地使用Active Directory密码进行身份验证,就可以登录。许多人允许浏览器保存密码。 我想做的是,只请求密码中的某些字符。。。就像银行系统一样 请输入密码中的字符2、5和7 是否可以在PHP中执行此操作?我在谷歌上搜索过,但我不相信我知道该搜索哪个词 任何指向正确方向的指示都将受到感激。 谢谢。这是可以做到的,不是用广告,而是用PHP,但它很可能会泄露用户密码 您必须分别保存并安全地散列每个密码字符,以便可以将给定字符与保存的单个字符散列进行比较 应该这样做,

我有一个网站,如果用户成功地使用Active Directory密码进行身份验证,就可以登录。许多人允许浏览器保存密码。 我想做的是,只请求密码中的某些字符。。。就像银行系统一样

请输入密码中的字符2、5和7

是否可以在PHP中执行此操作?我在谷歌上搜索过,但我不相信我知道该搜索哪个词

任何指向正确方向的指示都将受到感激。
谢谢。

这是可以做到的,不是用广告,而是用PHP,但它很可能会泄露用户密码

您必须分别保存并安全地散列每个密码字符,以便可以将给定字符与保存的单个字符散列进行比较

应该这样做,即使用户密码的长度也不会受到影响(最多可以保存n个哈希,即使其中大多数来自空字符)

即使你会这么做,散列单个字符对安全来说也是一场灾难,因为即使使用通常安全的散列算法,暴力破解单个字符也需要一眨眼的时间


考虑到您的用户通过Active Directory(我想是LDAP?)进行身份验证,我不认为这是一种合理的方法,因为您对密码、密码更改(能够重新计算哈希值)等方面的知识有限。

密码是一个字符串。阅读更多关于PHP的信息。专注于这一部分,谢谢你的指点。我已经读过了,并且已经知道了这些信息。我想做的是通过PHP的LDAP请求进行身份验证,但不确定LDAP/AD是否允许这种身份验证。我很确定LDAP或AD不允许这种身份验证。为了支持用户使用其密码的某些字符登录(假设您没有将密码存储为纯文本),您需要存储每个密码的散列,并根据这些密码验证请求的字符。非常感谢您对我的问题给出详细而有用的答案。也许我会将两者结合起来,继续进行通常的广告认证,但同时设置一个二级密码,我可以使用上述方法。非常感谢。