private void checkValidPasswordHash(char[] saltedPasswordHash) throws IOException {
		if (saltedPasswordHash == null ||
			saltedPasswordHash.length != HashUtilities.SHA256_SALTED_HASH_LENGTH) {
			throw new IOException("Invalid password hash");
		}
		for (int i = 0; i < HashUtilities.SALT_LENGTH; i++) {
			if (!isLetterOrDigit(saltedPasswordHash[i])) {
				throw new IOException(
					"Password set failed due invalid salt: " + (new String(saltedPasswordHash)) +
						" (" + i + "," + saltedPasswordHash[i] + ")");
			}
		}
		for (int i = HashUtilities.SALT_LENGTH; i < saltedPasswordHash.length; i++) {
			if (!isLowercaseHexDigit(saltedPasswordHash[i])) {
				throw new IOException(
					"Password set failed due to invalid hash: " + (new String(saltedPasswordHash)) +
						" (" + i + "," + saltedPasswordHash[i] + ")");
			}
		}
	}
Sets the X500 distinguished name for a user
@param username user name/SID
@param x500User X500 distinguished name
@return true if successful, false if user not found
@throws IOException if error occurs while updating user file
Ghidra/Features/GhidraServer/src/main/java/ghidra/server/UserManager.java