The Apple MDM command AccountConfiguration
requires a specific property list of hashed password to work. This tool generates that Plist. Apple has the format documented here.
mdmpasswd
takes a parameter for the password and outputs the plist (or, optionally, the Base-64 encoded form of the plist) to stdout.
$ go run mdmpasswd.go -h
Usage of mdmpasswd:
-b64
Output base64-encoded Plist
-password string
Password to hash
Example:
$ go run mdmpasswd.go -password 'Hello, world!'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SALTED-SHA512-PBKDF2</key>
<dict>
<key>entropy</key>
<data>LRsP3y8L1kwX9JplSvYJTWaUsZLtrpa/7NamZBWEYONqtlt1yAWPC7kd5v1sjhdkPVzrvPESiIXbmBli3RWe5WmVvxKGjN7f3yl1yZVzUgasXrV1aZZ1TVnJBpOBqFJOPGxcDA3i5Krfts1dRgPjATgbi1nPHXk9I3IsE0a02us=</data>
<key>iterations</key>
<integer>34501</integer>
<key>salt</key>
<data>dCfDCfGDT+qitaiKelndzwbfxivLvGuLG66Of9ZzwxE=</data>
</dict>
</dict>
</plist>