오라클(Oracle) 개인정보 마스킹 처리 방법

Posted by 돼지로운생활
2018.05.05 10:00 개발자의 길/DB

 안녕하세요!

날씨가 좋은 하루네요. 포스팅이 올라가는 오늘이 금요일이니 모두 불타는 금요일 보내시길 바래요!


Milkye입니다!



 오늘은 오라클(Oracle)을 이용해서 데이터를 뽑아낼 때, 개인정보를 *나 O등으로 마스킹 처리하는 방법에 대해서 알아보려고 해요. 보통 특정 사이트에서 당첨자 명단을 공개할 때, 중간 글자들이 마스킹이 되어서 나오는 경우가 많은데 똑같이 이를 구현을 해보도록 합시다!


여러분은 지금 [ 손예진라뷰라뷰 ]이라는 닉네임을 가진 당첨자를 게시판에 게시를 해야하는 상황입니다. 

모든 정보를 여러 사람이 보는 곳에 공개를 해도 될까요?


No!!!


그래서 우리는 데이터를 마스킹 처리해서 [ 손*****뷰 ]라고 공개를 하고 싶습니다.

어떻게 할 수 있을까요?!

바로 이렇게 할 수 있습니다.


1
substr(name,1,1|| lpad('*',length(name)-2,'*'|| substr(name, length(name), 1)
cs


어머나, 이게 무슨 뜻일까요?



substr(name,1,1)은 name이라는 컬럼의 데이터들의 1번째 값에서부터 

1번째 값까지 가져오겠다라는 뜻입니다.


lpad('*',length(name)-2,'*')는 [ name의 데이터 길이 ] - [ 2 ]만큼 왼쪽부터 

첫번째 인자인 '*'로 채우고, 빈 공간은 '*'로 채우겠다라는 뜻입니다. 


substr(name,length(name),1)은 무슨 뜻일까요? 

위에 1번과 같은 의미이니 각자 생각을 해보시면 어떨까요?!



자, 그 상태에서 다 ||로 연결을 시켰기 때문에 각각의 함수들이 다 이어지게 됩니다.

그렇기에 저 상태로 Select를 하게 되면 자연스럽게 마스킹이 되어서 나오는 것이죠.


꼭 *(별표) 가 아니더라고 어떠한 문자로도 치환을 할 수 있습니다. 

★이러한 별표로도 치환이 가능해요.





유용한 IT정보 / 전자제품 리뷰
포털에서 MilkyeWay를 검색해주세요👍
유용한 정보였다면 ❤️ 클릭 부탁드려요 😄

이 댓글을 비밀 댓글로