sscanf 或sprintf 如何把其中的password 过滤掉?
输出log 时,有类似下面信息,只是类似,前后格式不固定。
userauth,router,OnRouterMessage received : username: "songyantao" password: "e10adc3949b"type:xxx field1:yyyy ......
把password: "e10adc3949b” 给隐藏掉。
1:password: "e10adc3949b” --》 ********** 代替
2:password开始,后面信息都不要了
利用 sscanf sprintf 正则怎么搞,没弄出来,另外这是log输出公共函数,所以效率很关键。 你应该从调用日志输出密码的地方去入手, 而不是去更改日志函数。
你这样做违背正交化原则了 回复 2# xinglp
你说的没错,现在是接到这样的需求,我也没辙。 回复 3# sytpb
就当考试题了。
本帖最后由 hellioncu 于 2016-08-09 09:55 编辑
char *sub = "password: \"";
p = strstr(str, sub);
if (p != NULL)
{
p += strlen(sub);
while (*p != '\0' && *p != '"')
{
*p = '*';
++p;
}
}
页:
[1]