【发布时间】:2014-01-29 23:41:07
【问题描述】:
我需要混淆匹配的参数值
password, tokenID
示例查询字符串:
visitorNo=89&password=demo&tokenID=yxr56
应该被混淆为:
visitorNo=89&password=$$&tokenID=$$
我做了什么:
String[] parameters = queryString.split("&");
StringBuffer qS = new StringBuffer();
for(String param : parameters) {
String[] keyValue = param.split("=");
qS.append(keyValue[0]);
qS.append("=");
for(String paramToObfuscate : paramsToObfuscate) {
if(paramToObfuscate.equals(keyValue[0])) {
qS.append("$$");
}
else {
qS.append(keyValue[1]);
}
}
qS.append("&");
}
String queryStr = qS.toString().substring(0, qS.length-1);
【问题讨论】:
-
@NiklasB。有用。想知道这是否可以通过更优化的方式来实现。
-
如果
paramsToObfuscate.length > 1怎么办?除非我很愚蠢,否则在这种情况下它不应该起作用。说paramsToObfuscate = { "password", "tokenID",你应该得到visitorNo=8989&password=$$<unobfuscated password>&tokenID=<unobfuscated token>$$不是很有效的混淆。
标签: java string optimization replace