非 ASCII 值的 Ldapsearch 和 base64 编码

Ldapsearch and base64 encoding of non ASCII values

如果数据库包含非 ASCII 数据,如 (Lehtelä),Ldapsearch returns 将其作为 base64 编码 (:: TGVodGVsw6Q=)。 我关注了这个博客,为了解码它(https://lurchi.wordpress.com/2009/11/03/ldapsearch-and-base64-encoding/)

只有当 base64 是单行值时它才有帮助,如果值跨越多行如何处理它。

 ldapsearch -x -H ldap://76.656.23.56 -D cn=admin -w abc -b "o=my_comp" -s sub -LLL 'mail=mail@gmail.com'  sn nrfAssignedResources | un64

dn: cn=SBOSTRO2,ou=Employees,ou=Active,ou=Identities,ou=Meta,o=VCC
base64: invalid input
nrfAssignedResources:: "cn=VCCBIZ GPO 0100 account,cn=ResourceDef"
 zLGNuPVJvbGVDb25maWcsY249QXBwQ29uZmlnLGNuPVVBLGNuPURyaXZlclNldCxvdT1TeXN0ZW0s
 bz1WQ0MjMiM8YXNzaWdubWsjdfahgsgacgfacxfg sahhagsvgcagjMyMzZaPC9zdGFydF90bT48c
 mVxX3RtPjIwMTQwMTI3MDYzMjM2WjwvcmVxX3RtPjxpbnN0LWd1aWQ+ZGM5M2ZkODRjYmQ3NGY3MG
 JjM2VmZjRlODAyZDdlMjE8L2luc3QtZ3VpZD48cmVxPmNuPUpBU1BMVU5ELG91PUVtcGxveWVlcyx
 W50Pg==
sn:: "Boström "

正如你在这里看到的,因为 sn 只有一行,它的完整("Boström")和 nrfAssignedResources 值是多行,只有第一行被解码而不是其余的。 AWK代码在上面的link中可用。

您可以将选项 -o ldif-wrap=no 传递给您的 ldapsearch,这样可以避免换行。