본문 바로가기
Development/Database

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

by 돼지로운생활 2018. 5. 5.

 안녕하세요!

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


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를 하게 되면 자연스럽게 마스킹이 되어서 나오는 것이죠.


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

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





개발자의💻 개발자에의한👨‍💻 개발자를위한☕
This is MilkyeWay
👈왼쪽 하단에 ❤️클릭 부탁드려요👏

댓글0