2011-09-08 5 views
4

신중한 데이터를 숨기는 가장 좋은 방법은 무엇입니까? 암호를 로그에 저장하십시오.로그에서 비밀번호를 마스크하는 방법은 무엇입니까?

내 서블릿에 보내는 POST 요청 본문을 기록하고 싶습니다. 그러나 비밀번호 로깅은 좋은 생각이 아닙니다. 어떻게 암호를 가면? 정규식이 가장 좋은 아이디어 인 경우 몇 가지 예를 제안 할 수 있습니까?

// Example: 
password=123456asedqwe -> password=*** 
bla&password=qweqweqwe -> bla&password=*** 
password=qweqweqwe&qwe=qwe -> password=***&qwe=qwe 
+6

당신이 말했듯이, 암호를 기록하는 것은 전혀 좋은 생각이 아니다. 해당 필드를 로깅에서 제거하지 않는 이유는 무엇입니까? – asgs

+0

요청시 암호가 나타난다는 정보가 필요합니다. – smas

답변

10

다음과 같은 간단한 정규식 대체를 시도 할 수 있습니다. 암호가 password=과 다음 암호 인 & 사이에 있다고 가정합니다.

String s = "password=qweqweqwe&qwe=qwe "; 
    String maskedPassword = s.replaceAll("password=[^&]*", "password=***"); 
    System.out.println(maskedPassword); 

인쇄 :

password=***&qwe=qwe 
+0

감사합니다. 간단하고보기 좋은 코드 – smas

+1

주의 : 암호에 '&'가 포함되어 있으면 두 번째 암호가 노출 될 수 있습니다. – Alex

관련 문제