在密码字符串中为每个字符添加\ 000

时间:2010-09-13 14:47:58

标签: php encoding active-directory ldap

为什么会这样做。

for ($i = 0; $i < $len; $i++) {
    $unicodepassword .= "{$passwd{$i}}\000";
}

上下文:这是在Active Directory中创建或修改用户时设置的密码。我们正在重写一些古老的代码,没有这个就没有用。在我们的LDAP中进行更改不需要这种“编码”。

此练习的结果也被称为“unicodepassword”,对我来说似乎很奇怪。

1 个答案:

答案 0 :(得分:2)

  

此练习的结果也被称为“unicodepassword”,对我来说似乎很奇怪。

这实际上是从ASCII到UTF-16(小端)的简单转换。对于字符&gt; #127,它将转换为一个unicode代码点,其值与ord($passwd{$i})相同(因此它将取决于原始密码的编码)。