package org.zaproxy.zap.utils;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.codec.binary.Base64;
public class EncodingUtils {
public static String mapToString(Map<String, String> map) {
StringBuilder stringBuilder = new StringBuilder();
for (String key : map.keySet()) {
if (stringBuilder.length() > 0) {
stringBuilder.append("&");
}
String value = map.get(key);
stringBuilder.append(key != null ? Base64.encodeBase64String(key.getBytes()) : "");
stringBuilder.append(":");
stringBuilder.append(value != null ? Base64.encodeBase64String(value.getBytes()) : "");
}
return stringBuilder.toString();
}
public static Map<String, String> stringToMap(String input) {
Map<String, String> map = new HashMap<String, String>();
String[] nameValuePairs = input.split("&");
for (String nameValuePair : nameValuePairs) {
String[] nameValue = nameValuePair.split(":");
map.put(new String(Base64.decodeBase64(nameValue[0])),
nameValue.length > 1 ? new String(Base64.decodeBase64(nameValue[1])) : "");
}
return map;
}
}