private static Properties toProps(String str) {
        Properties props = new Properties();
        String[] tokens = str.split(",");
        for (String token : tokens) {
            int index = token.indexOf('=');
            if (index <= 0)
                throw new IllegalArgumentException("Credentials not valid: " + str);
            props.put(token.substring(0, index), token.substring(index + 1));
        }
        return props;
    }
SCRAM Credential persistence utility functions. Implements format conversion used
for the credential store implemented in Kafka. Credentials are persisted as a comma-separated
String of key-value pairs:
<pre>
  salt=<i>salt</i>,stored_key=<i>stored_key</i>,server_key=<i>server_key</i>,iterations=<i>iterations</i>
</pre>
clients/src/main/java/org/apache/kafka/common/security/scram/internals/ScramCredentialUtils.java