代码之家  ›  专栏  ›  技术社区  ›  jtm

向密码字符串中的每个字符添加\000

  •  2
  • jtm  · 技术社区  · 14 年前

    为什么要这样做?

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

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

    这个练习的结果也被称为“unicodepassword”,我觉得很奇怪。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Artefacto    14 年前

    这个练习的结果也被称为“unicodepassword”,我觉得很奇怪。

    这实际上是从ascii到utf-16(小endian)的简单转换。对于字符>127,它将转换为值与 ord($passwd{$i}) (因此,它将取决于原始密码的编码)。