【发布时间】:2013-05-21 19:25:05
【问题描述】:
我正在尝试编写一个 PHP 脚本,它接收一个 csv 文件,然后创建一个 LDIFDE 文件,用于将学生导入 AD。
除了密码,我一切正常。
问题似乎出在 PHP 中的 base64_encode() 上。
echo $password = '"Password1"';
echo "<br />";
echo $testPass = base64_decode("IgBQAGEAcwBzAHcAbwByAGQAMQAiAA==");
echo "<br />";
echo base64_encode($password);
echo "<br />";
echo "IgBQAGEAcwBzAHcAbwByAGQAMQAiAA==";
echo "<br />";
echo base64_encode($testPass);
输出是:
"Password1"
"Password1"
IlBhc3N3b3JkMSI=
IgBQAGEAcwBzAHcAbwByAGQAMQAiAA==
IgBQAGEAcwBzAHcAbwByAGQAMQAiAA==
我找不到“Password1”之间的区别。有谁知道我在这里做错了什么?一旦我可以让我的初始和编码的 $password 与编码的 $testPass 匹配,我应该能够让它正常工作。
【问题讨论】:
-
我刚刚做了一个 var_dump 并得到了以下结果 string '"Password1"' (length=11) string '"�P�s�s�w�o�r�d�1 �"�' (length=22) 我不知道怎么看�是什么。在源代码中,它们以 的形式出现
-
顺便说一句,试试
echo 'chr'.ord($testpass[1]);并告诉我结果... -
字符串为 UCS-2LE / UTF-16 Little Endian。发布了有关如何转换为或从中转换的答案,以正确者为准。
标签: php windows active-directory