将 Base64 LDIF 文件转换为纯文本(用于导入)

Convert a Base64 LDIF file to plaintext (for import)

我有一个具有多值 Base64 编码属性的 LDIF 文件,我想将其转换为非 Base64 编码语法。如何做到这一点?

上下文

LDIF 文件是这样的:

dn: cn=johndoe,ou=clients,ou=management,dc=example,dc=com
changetype: modify
replace: foobarStatus
foobarStatus:: ZW5hYmxl... (Base64 string) ...ZCA9IHRydWU

解码后的 Base64 字符串是这样的:

market = "US"
mgmt.account.mode = "X12"
foo.field = "Something"
bar.field = "Something else" 
...

问题

当我尝试通过 ldapmodify 将此 LDIF 文件导入 LDAP 服务器时,出现错误:

ldapmodify: invalid format (line 4) entry: "cn=johndoe,ou=clients,ou=management,dc=example,dc=com"

我已经尝试解决这个问题一段时间了,但找不到错误。它可能是某个地方的一些虚假字符。因此,我想到了转换 LDIF 的 Base64 部分并以这种格式导入它。属性值不包含任何不可打印的 ASCII(例如重音字母),因此它应该可以正常工作。

备注

这可能是 XY problem 所以如果有人有其他建议,我很想读一读。

原来ldapmodify不喜欢排长队。因此,这里拆分Base64编码后

foobarStatus:: ZW5hYmxl... (Base64 string) ...ZCA9IHRydWU

到多行 79 个字符或更少,ldapmodify 能够导入它。

这解决了我原来的问题。我将解决方案留给未来的读者。