这里只描述下我这边使用ldapsearch命令的现象
使用此命令导出数据后发现中文都被加密了类似于
dn: cn=cn1561,ou=People,dc=ldap,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: cn1561
displayName:: 6YOR5bee6JCl5Lia6YOo
userPassword:: ZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2U=
sn: zzyingyebu
uid: 1561
givenName:: 6YOR5bee6JCl5Lia6YOo
上面这段中的属性givenName有2个冒号 我的认为就是给加密了
经验证这个加密是通过base64加密实现的;我在使用ldapmodify命令对此属性进行汉字修改的时候发现报错 不能修改说
modifying entry "cn=cn1561,ou=People,dc=ldap,dc=com"
ldap_modify: Invalid syntax (21)
additional info: givenName: value #0 invalid per syntax
也就是说文件也不能直接用中文 然后我就尝试着先用拼音替换掉汉字 然后又使用givenName:: 6YOR5bee6JCl5Lia6YOo这种方式做了次修改 发现
汉字正确修改过来了 也就是说使用ldapmodify命令时如果是汉字需要使用base64对汉字加密 然后再进行命令操作
分析:
显示的结果:中文字符转换为utf8再用base64
iconv命令和函数可以处理
可以用ldap其他工具找出具体中文,然后用iconv -f gb2312 -t utf8 file.txt >b.txt
然后再找个base64在线转换b.txt的查看下,是否跟ldapsearch显示结果一致