개인 정보 마스킹 | 개인정보에 마스킹하고 아무나 못 보게 비번 걸기 빠른 답변

당신은 주제를 찾고 있습니까 “개인 정보 마스킹 – 개인정보에 마스킹하고 아무나 못 보게 비번 걸기“? 다음 카테고리의 웹사이트 ppa.giaoductieuhoc.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://ppa.giaoductieuhoc.vn/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 공여사들 이(가) 작성한 기사에는 조회수 14,178회 및 좋아요 441개 개의 좋아요가 있습니다.

Table of Contents

개인 정보 마스킹 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 개인정보에 마스킹하고 아무나 못 보게 비번 걸기 – 개인 정보 마스킹 주제에 대한 세부정보를 참조하세요

자료링크 : https://gongysd.com/Solver/?idx=8613474\u0026bmode=view
엑셀 시트에 비밀번호를 설정하면
아무나 함부로 값을 바꿀 수 없습니다.
그런데 여기서 한발 더 나가면
보여지는 표시형식을 마스킹 처리해준 다음,
원본 데이터에 접근 못하도록 숨김을 해주면
시트보호를 해제하지 않는 이상은
마스킹되기 전 모습을 알 수 없습니다.
즉, 비밀번호를 알아야지만
원본 데이터도 보이고 시트 수정도 가능합니다.
잘 쓰지 않는 기능이지만
딱 맞는 상황에 갖다 쓰면 좋을 것 같네요! 😊
❎ 엑심위 문제접수 : https://gongysd.com/help ❎
순서
00:00 오늘의 문제소개
02:01 셀서식으로 주민번호 뒷자리 마스킹하기
04:59 수식(실제값) 숨기고 시트보호 비번 설정하기
#개인정보마스킹 #엑셀시트보호 #엑셀시트잠금

공여사와 무.작.정 풀어보는 엑셀 실무
👉 https://gongysd.com/fastcampus (BEST강의🏆)
오직 왕초보를 위한 왕.초.보 엑셀
👉 https://gongysd.com/classu (컴맹 환영🤗)
직장인이 진짜 쓰는 엑셀 엑.기.스
👉 https://gongysd.com/class101 (수강생 만족도 99%)
직장인 엑셀 기초반 소규모 그룹수업
👉 https://gongysd.com/group-class (매월 선착순 모집)

개인 정보 마스킹 주제에 대한 자세한 내용은 여기를 참조하세요.

개인정보 마스킹 – Inzisoft

개인정보 마스킹은 이미지로 생성된 문서에서 개인정보를 자동으로 식별하여 특정 정보를 마스킹 처리하도록 하는 소프트웨어입니다.

+ 여기에 자세히 보기

Source: inzisoft.com

Date Published: 7/12/2021

View: 7578

개인정보 마스킹 홈페이지 가이드, 기준 – 네이버 블로그

홈페이지에서 개인정보를 식별하지 못하게 하기 위해서 마스킹 처리를 해야하는데요,. 마스킹 처리의 기준과 가이드가 명확하지 않아서 회사마다 …

+ 여기를 클릭

Source: m.blog.naver.com

Date Published: 2/20/2021

View: 4673

(개인정보보호위원회) 개인정보의 기술적·관리적 보호조치 기준

제1조(목적) ① 이 기준은 「개인정보 보호법」(이하 “법”이라 한다) 제29 … 보호를 위하여 개인정보를 마스킹하여 표시제한 조치를 취할 수 있다.

+ 자세한 내용은 여기를 클릭하십시오

Source: www.law.go.kr

Date Published: 7/8/2021

View: 2237

홈페이지 개인정보 노출방지 안내서

상기 사례는 홈페이지 담당자가 신규 채용된 강사 경력정보를 홈페이지에 공개하면서 해당. 정보를 마스킹 처리하지 않아 인터넷에 개인정보가 노출된 건입니다. 개인정보 …

+ 자세한 내용은 여기를 클릭하십시오

Source: www.gne.go.kr

Date Published: 8/30/2021

View: 3711

데이터 마스킹이란 무엇입니까? | 팁코 소프트웨어

데이터 마스킹의 간단한 예는 개인 식별 정보를 숨기는 것입니다. 조직의 데이터베이스에 직원 테이블이 있다고 가정해보겠습니다. 해당 테이블에는 직원 ID와 각 직원 …

+ 더 읽기

Source: www.tibco.com

Date Published: 12/7/2022

View: 6344

개인정보 마스킹 관련하여 질문있습니다. – SharedIT

안녕하세요.개인정보 마스킹 필요 여부 관련하여 예시로 질문드립니다.개인정보처리시스템 : A개인정보처리시스템 개발사 : B개인정보처시스템을 사용하는 고객사 : CC …

+ 자세한 내용은 여기를 클릭하십시오

Source: www.sharedit.co.kr

Date Published: 10/4/2021

View: 5897

[JavaScript ] 개인정보 마스킹 함수(이름 마스킹, 이메일 … – 갓대희

▷ 개인정보 마스킹 함수 · 1. 이메일 마스킹 · – 1.1 @ 뒷부분 마스킹 처리 하지 않는 경우 · – 1.2 @ 뒷부분도 마스킹 처리 하는 경우 · 2. 휴대폰 번호 …

+ 더 읽기

Source: goddaehee.tistory.com

Date Published: 4/18/2022

View: 9137

개인정보에 마스킹하고 아무나 못 보게 비번 걸기 빠른 답변

[JavaScript ] 개인정보 마스킹 함수(이름 마스킹, 이메일 … – 갓대희. ▷ 개인정보 마스킹 함수 · 1. 이메일 마스킹 · – 1.1 @ 뒷부분 마스킹 처리 하지 …

+ 여기에 자세히 보기

Source: you.1111.com.vn

Date Published: 7/3/2021

View: 6251

Jackson 이용한 개인정보 마스킹처리 – velog

어노테이션을 이용해서 각 개인정보 성격에 맞춰서 마스킹 처리를 구현해야 했다. @MaskRequired 라는 어노테이션은 만들어주고, 마스킹 처리할 dto …

See also  네온 사인 제작 | 아크릴 타입 - Beer ! 네온사인 만들기! 상위 265개 베스트 답변

+ 여기에 보기

Source: velog.io

Date Published: 10/15/2021

View: 8923

주제와 관련된 이미지 개인 정보 마스킹

주제와 관련된 더 많은 사진을 참조하십시오 개인정보에 마스킹하고 아무나 못 보게 비번 걸기. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

개인정보에 마스킹하고 아무나 못 보게 비번 걸기
개인정보에 마스킹하고 아무나 못 보게 비번 걸기

주제에 대한 기사 평가 개인 정보 마스킹

  • Author: 공여사들
  • Views: 조회수 14,178회
  • Likes: 좋아요 441개
  • Date Published: 2021. 10. 23.
  • Video Url link: https://www.youtube.com/watch?v=9Nf49MxBS3M

개인정보 마스킹

개인정보 마스킹

iPrivacyProtector

개인정보 유출의 위험을 차단합니다.

개인정보 마스킹은 이미지로 생성된 문서에서 개인정보를 자동으로 식별하여 특정 정보를 마스킹 처리하도록 하는 소프트웨어입니다. 신분증, 주민등록등본, 사업자등록증 등 주요 증명서 및 고객사별 각종 신청서를 대상으로한 마스킹 처리가 가능합니다.

개인정보 마스킹 홈페이지 가이드, 기준

홈페이지에서 개인정보를 식별하지 못하게 하기 위해서 마스킹 처리를 해야하는데요,

마스킹 처리의 기준과 가이드가 명확하지 않아서 회사마다 조금씩 다르게 적용이 되어 있어요^^;

해서 나름의 기준을 찾아보았답니다.

데이터 마스킹이란 무엇입니까?

일반적인 데이터 마스킹 방법은 무엇입니까?

대체

대체 방법에서는 데이터 레코드의 원래 데이터 값을 진짜 값이 아닌 값으로 대체합니다. 예를 들어, 고객 데이터베이스에서 모든 남성 이름은 표준 값으로 대체할 수 있으며 모든 여성 이름은 다른 값으로 대체될 수 있습니다. 대체 방법에서는 가짜 데이터의 형식이 원본 데이터와 정확히 동일한지 확인합니다. 또한, 위의 예에서 데이터 마스킹 시스템은 남성과 여성의 이름을 별도로 대체하여 남성-여성 고객 비율을 유지합니다.

셔플링

이것은 데이터베이스 테이블의 열에서 값을 세로로 섞는 일반적인 데이터 마스킹 기술입니다. 셔플링을 사용하여 각 은행 계좌의 잔액을 저장하는 테이블을 마스킹해야 하는 경우 계정 잔액 열을 무작위로 섞습니다. 이러한 방식으로 계정 번호는 실제 데이터가 아닌 임의의 잔액을 갖게 됩니다. 셔플링의 장점은 데이터 마스킹 후에도 열의 집계 값이 동일하게 유지된다는 것입니다.

평균화

평균화는 테이블 열의 모든 숫자 값을 평균값으로 교체합니다. 위의 계정 잔액 예에서 각 계정 잔액은 모든 잔액의 평균으로 대체됩니다. 이로 인해 개별 계정의 잔액을 확인할 수 없습니다. 이 프로세스에서도 집계 값은 유지됩니다.

조정 및 널링

조정은 가장 간단한 데이터 마스킹 방법입니다. 민감한 데이터는 “X”와 같은 일반 값으로 대체됩니다. 이 조정은 전화번호나 신용카드 번호 등을 마스킹하는 일반적인 방법입니다. 널링은 유사한 프로세스이지만 일반 값 대신 NULL이 데이터 필드에 배치됩니다. 이 방법에는 여러 단점이 있습니다. 널링을 통해 여러 가지 데이터 불일치가 발생할 수 있습니다. 또한 데이터가 마스킹되었다는 사실을 강조합니다.

형식 보존 암호화

암호화는 데이터를 읽을 수 없는 기호 배열로 교체합니다. 표준 암호화 방법에서는 일반적으로 데이터 포인트를 임의 길이의 문자열로 교체합니다. 데이터 마스킹의 경우 암호화에는 데이터 무결성을 유지하기 위해 원본 데이터의 길이와 형식을 유지해야 합니다. 따라서 형식 보존 암호화 방법을 사용하여 데이터를 마스킹합니다. 위의 방법과 달리 암호화된 데이터는 암호화 키를 사용할 수 있는 경우 되돌릴 수 있어 보안 위험이 될 수 있습니다. 여전히 많은 조직에서 데이터 마스킹에 암호화를 사용합니다.

데이터 마스킹의 일반 규칙은 무엇입니까?

데이터 마스킹 기술은 변환된 데이터가 계속 유용하도록 하기 위해 몇 가지 규칙을 따라야 합니다.

데이터 마스킹은 비가역적이어야 합니다.

데이터 마스킹 기술을 통해 인증된 데이터를 변환하면 마스킹된 데이터에서 원본 데이터를 검색할 수 없어야 합니다. 데이터를 되돌릴 수 있는 경우 심각한 보안 문제로 됩니다.

데이터는 대표성이 있어야 합니다.

데이터 마스킹 기술은 데이터의 특성을 변경해서는 안 됩니다. 데이터 마스킹은 원본 데이터의 지리적 분포, 성별 분포, 가독성 및 숫자 분포가 유지되는 방식으로 변환을 사용해야 합니다.

무결성이 손상되어서는 안 됩니다.

데이터 마스킹은 데이터베이스의 무결성에 영향을 미치지 않아야 합니다. 예를 들어, 신용 카드 번호가 테이블의 기본 키이고 마스킹을 위해 뒤섞인 경우 해당 신용 카드 번호의 모든 인스턴스는 동일하게 뒤섞여야 합니다. 간단히 말해서, 데이터 마스킹은 참조 무결성에 영향을 미치지 않아야 합니다.

민감한 데이터에 영향을 미치는 경우 민감하지 않은 데이터 마스킹을 적용해야 합니다.

데이터 마스킹이 반드시 데이터 레코드의 모든 필드를 마스킹하는 것은 아닙니다. 예를 들어 고객 기록에서 모든 민감한 정보가 이미 마스킹되어 있으므로 고객의 성별을 마스킹할 필요가 없을 수 있습니다. 민감하지 않은 데이터를 사용하여 민감한 데이터를 재구성할 수 있는 경우 보안을 위해 해당 데이터를 마스킹해야 합니다.

데이터 마스킹은 자동화되어야 합니다.

데이터 마스킹은 일회성 프로세스가 아닙니다. 프로덕션 데이터가 자주 변경되므로 데이터 마스킹 시스템은 새 데이터의 마스킹된 복제본을 생성해야 합니다. 데이터 마스킹이 자동화되지 않으면 비용이 많이 들고 비효과적이며 비효율적일 수 있습니다.

데이터 마스킹 워크플로 옵션

정적 데이터 마스킹

정적 데이터 마스킹 워크플로에서는 원본 데이터의 복사본을 만들고 이 복사본에 마스킹을 적용합니다. 널리 사용되는 정적 데이터 마스킹 방법에는 다음의 두 가지가 있습니다.

추출 – 변환 – 적재(ETL)

ETL은 일반적으로 사용되는 데이터 마스킹 워크플로입니다. 이 워크플로의 첫 번째 단계는 프로덕션 데이터베이스에서 데이터를 추출하는 것입니다. 이 단계에서는 프로덕션 데이터베이스의 정확한 복사본을 만들거나 SELECT 쿼리를 사용하여 데이터의 하위 집합만 추출할 수 있습니다. 변환 단계에서 데이터 마스킹 시스템은 위에서 설명한 데이터 마스킹 방법 중 하나를 적용합니다. 마지막 단계에서 마스킹된 데이터가 테스트 데이터베이스에 적재됩니다.

제자리 마스킹

이 워크플로에서 데이터는 프로덕션/원본 데이터베이스 내에서 마스킹됩니다. 마스킹 시스템은 동일한 데이터베이스에 있는 데이터의 “복사본”에서 작동합니다. 이렇게 하면 ETL 워크플로에서 추출하고 적재하는 단계가 제거됩니다. 제자리 데이터 마스킹은 프로덕션 데이터베이스의 고급 기능을 활용합니다. 이 방법의 단점 중 하나는 프로덕션 데이터베이스에 대한 계산 오버헤드입니다. 또한 프로덕션 데이터베이스 내에 복사본을 만들고 이 마스킹된 데이터에 액세스하는 사용자는 보안 위협을 초래할 수 있습니다.

동적 데이터 마스킹

동적 데이터 마스킹에서 마스크는 시스템이 사용자 요청을 받을 때마다 데이터 복사본에 적용됩니다.

뷰 기반 데이터 마스킹

이 데이터 마스킹 기술에서는 사용자가 데이터를 요청할 때 사용자의 액세스 권한에 따라 마스크가 적용되고 사용자는 원본 데이터의 “마스킹된 뷰”를 얻습니다. 마스크된 뷰는보기는 가상 테이블입니다. 뷰 기반 동적 마스킹은 모든 테스트 사용자가 동일한 데이터 권한을 갖지 않을 수 있는 테스트 환경에 적합합니다.

프록시 기반 데이터 마스킹

프록시 기반 데이터 마스킹은 동적 데이터 마스킹의 새로운 방법입니다. 이 모델에서 모든 데이터 요청은 데이터 마스킹을 서비스로 실행하는 프록시 시스템을 통과합니다. 프록시 기반 마스킹의 예는 애플리케이션과 데이터베이스 간의 데이터 트랜잭션을 들 수 있습니다. 애플리케이션이 신용 카드 번호와 같은 중요한 데이터에 대해 너무 많은 쿼리를 발행하는 경우 프록시 시스템이 데이터를 마스킹할 수 있습니다. 이것은 해킹이나 무단 접근에 대비하여 데이터를 보호하기 위함입니다. 이 모델에서 쿼리 결과는 마스킹된 데이터로 대체됩니다. 다른 구현을 보면 쿼리 자체는 마스크된 데이터 복사본에 대해 실행되도록 다시 작성됩니다. 그런 다음 데이터베이스의 마스크된 열에서 결과가 선택됩니다.

개인정보 마스킹 관련하여 질문있습니다.

안녕하세요.

개인정보 마스킹 필요 여부 관련하여 예시로 질문드립니다.

개인정보처리시스템 : A

개인정보처리시스템 개발사 : B

개인정보처시스템을 사용하는 고객사 : C

C 고객사는 개인정보 처리시스템을 이용할 수 있는 인원이 10명입니다.

C 고객사의 담당자 중 한명이 개인정보처리시스템을 로그인 할 경우 다른 9명에 대한 개인정보를 볼 수 있습니다(성명, 이메일)

개인정보처리시스템을 사용하는 인원이 개인정보취급자라는 가정하에 상기 언급된 개인정보(성명, 이메일)를 데이터마스킹 처리 하여야 하나요?

개보법에 명확히 명시되지 않은 것 같아 개인정보처리시스템 운영하시는 분들의 조언을 여쭙고자 질문드립니다.

[JavaScript ] 개인정보 마스킹 함수(이름 마스킹, 이메일 마스킹, 휴대폰 번호 마스킹, 주민번호 마스킹)

반응형

[JavaScript ] 개인정보 마스킹 함수(이름 마스킹, 이메일 마스킹, 휴대폰 번호 마스킹, 주민번호 마스킹)

안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 개인정보 마스킹 하기 ] 입니다. : )

▶ 개인정보 마스킹 함수

– 사실 데이터를 프론트단에서 마스킹 처리하는건 선호하지 않지만, 꼭 프론트에서 한번더 마스킹 처리를 해야한다면 사용할 예정이다.

1. 이메일 마스킹

– 1.1 @ 뒷부분 마스킹 처리 하지 않는 경우

ex)

원본 데이터 : [email protected]

변경 데이터 : ab**********@naver.com

– 1.2 @ 뒷부분도 마스킹 처리 하는 경우

ex)

원본 데이터 : [email protected]

변경 데이터 : ab**********@nav******

2. 휴대폰 번호 마스킹

ex1) 원본 데이터 : 01012345678, 변경 데이터 : 010****5678

ex2) 원본 데이터 : 010-1234-5678, 변경 데이터 : 010-****-5678

ex3) 원본 데이터 : 0111234567, 변경 데이터 : 011***4567

ex4) 원본 데이터 : 011-123-4567, 변경 데이터 : 011-***-4567

3. 주민등록 번호 마스킹 (Resident Registration Number, RRN Masking)

ex1) 원본 데이터 : 990101-1234567, 변경 데이터 : 990101-1******

ex2) 변경 데이터 : 9901011234567, 변경 데이터 : 9901011******

4. 이름 마스킹

ex1) 원본 데이터 : 갓댐희, 변경 데이터 : 갓댐*

ex2) 원본 데이터 : 하늘에수, 변경 데이터 : 하늘**

ex3) 원본 데이터 : 갓댐, 변경 데이터 : 갓*

let maskingFunc = { checkNull : function (str){ if(typeof str == “undefined” || str == null || str == “”){ return true; } else{ return false; } }, /* ※ 이메일 마스킹 ex1) 원본 데이터 : [email protected] 변경 데이터 : ab**********@naver.com ex2) 원본 데이터 : [email protected] 변경 데이터 : ab**********@nav****** */ email : function(str){ let originStr = str; let emailStr = originStr.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi); let strLength; if(this.checkNull(originStr) == true || this.checkNull(emailStr) == true){ return originStr; }else{ strLength = emailStr.toString().split(‘@’)[0].length – 3; // ex1) [email protected] => ab**********@naver.com // return originStr.toString().replace(new RegExp(‘.(?=.{0,’ + strLength + ‘}@)’, ‘g’), ‘*’); // ex2) [email protected] => ab**********@nav****** return originStr.toString().replace(new RegExp(‘.(?=.{0,’ + strLength + ‘}@)’, ‘g’), ‘*’).replace(/.{6}$/, “******”); } }, /* ※ 휴대폰 번호 마스킹 ex1) 원본 데이터 : 01012345678, 변경 데이터 : 010****5678 ex2) 원본 데이터 : 010-1234-5678, 변경 데이터 : 010-****-5678 ex3) 원본 데이터 : 0111234567, 변경 데이터 : 011***4567 ex4) 원본 데이터 : 011-123-4567, 변경 데이터 : 011-***-4567 */ phone : function(str){ let originStr = str; let phoneStr; let maskingStr; if(this.checkNull(originStr) == true){ return originStr; } if (originStr.toString().split(‘-‘).length != 3) { // 1) -가 없는 경우 phoneStr = originStr.length < 11 ? originStr.match(/\d{10}/gi) : originStr.match(/\d{11}/gi); if(this.checkNull(phoneStr) == true){ return originStr; } if(originStr.length < 11) { // 1.1) 0110000000 maskingStr = originStr.toString().replace(phoneStr, phoneStr.toString().replace(/(\d{3})(\d{3})(\d{4})/gi,'$1***$3')); } else { // 1.2) 01000000000 maskingStr = originStr.toString().replace(phoneStr, phoneStr.toString().replace(/(\d{3})(\d{4})(\d{4})/gi,'$1****$3')); } }else { // 2) -가 있는 경우 phoneStr = originStr.match(/\d{2,3}-\d{3,4}-\d{4}/gi); if(this.checkNull(phoneStr) == true){ return originStr; } if(/-[0-9]{3}-/.test(phoneStr)) { // 2.1) 00-000-0000 maskingStr = originStr.toString().replace(phoneStr, phoneStr.toString().replace(/-[0-9]{3}-/g, "-***-")); } else if(/-[0-9]{4}-/.test(phoneStr)) { // 2.2) 00-0000-0000 maskingStr = originStr.toString().replace(phoneStr, phoneStr.toString().replace(/-[0-9]{4}-/g, "-****-")); } } return maskingStr; }, /* ※ 주민등록 번호 마스킹 (Resident Registration Number, RRN Masking) ex1) 원본 데이터 : 990101-1234567, 변경 데이터 : 990101-1****** ex2) 원본 데이터 : 9901011234567, 변경 데이터 : 9901011****** */ rrn : function(str){ let originStr = str; let rrnStr; let maskingStr; let strLength; if(this.checkNull(originStr) == true){ return originStr; } rrnStr = originStr.match(/(?:[0-9]{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[1,2][0-9]|3[0,1]))-[1-4]{1}[0-9]{6}\b/gi); if(this.checkNull(rrnStr) == false){ strLength = rrnStr.toString().split('-').length; maskingStr = originStr.toString().replace(rrnStr,rrnStr.toString().replace(/(-?)([1-4]{1})([0-9]{6})\b/gi,"$1$2******")); }else { rrnStr = originStr.match(/\d{13}/gi); if(this.checkNull(rrnStr) == false){ strLength = rrnStr.toString().split('-').length; maskingStr = originStr.toString().replace(rrnStr,rrnStr.toString().replace(/([0-9]{6})$/gi,"******")); }else{ return originStr; } } return maskingStr; }, /* ※ 이름 마스킹 ex1) 원본 데이터 : 갓댐희, 변경 데이터 : 갓댐* ex2) 원본 데이터 : 하늘에수, 변경 데이터 : 하늘** ex3) 원본 데이터 : 갓댐, 변경 데이터 : 갓* */ name : function(str){ let originStr = str; let maskingStr; let strLength; if(this.checkNull(originStr) == true){ return originStr; } strLength = originStr.length; if(strLength < 3){ maskingStr = originStr.replace(/(?<=.{1})./gi, "*"); }else { maskingStr = originStr.replace(/(?<=.{2})./gi, "*"); } return maskingStr; } } ◎ 사용 예시 ex) maskingFunc.email("[email protected]"); // "ab**********@nav******" maskingFunc.phone("0111234567"); // "011***4567" maskingFunc.phone("011-123-4567"); // "011-***-4567" maskingFunc.phone("01012345678"); // "010****5678" maskingFunc.phone("010-1234-5678"); // "010-****-5678" maskingFunc.rrn("9901011234567"); // "9901011******" maskingFunc.rrn("990101-1234567"); // "990101-1******" maskingFunc.name("갓댐"); // "갓*" maskingFunc.name("갓댐희"); // "갓댐*" maskingFunc.name("하늘에수"); // "하늘**" 반응형

개인 정보 마스킹 | 개인정보에 마스킹하고 아무나 못 보게 비번 걸기 빠른 답변

We are using cookies to give you the best experience on our website.

You can find out more about which cookies we are using or switch them off in settings.

Jackson 이용한 개인정보 마스킹처리

목록 화면에서 개인정보에 해당하는 몇 필드들은 전달받은 규칙에 맞게 마스킹처리를 해야했다.

구글링을 해보니, Jackson을 이용하는 방법이 있었다.

여러 dto 중 일부 개인정보에 해당하는 필드에만 @MaskRequired 라는 어노테이션을 만들어 달아 어떤 필드를 마스킹 해야하는지 정의하도록 한다.

어떤 방식으로 마스킹할지 정의해줄 속성으로 MaskingType enum을 만든다.

어떻게 마스킹을 처리하는지를 맡는 Masking 클래스가 필요한다. 이 클래스에는 이름, 전화번호, 주소등을 마스킹처리하는 구현 method를 가진다.

@MaskRequired Annotation 생성

public enum MaskingType { NAME , CONTACT , DETAIL_ADDRESS } @Target ( { ElementType . ANNOTATION_TYPE , ElementType . FIELD } ) @Retention ( RetentionPolicy . RUNTIME ) @JacksonAnnotationsInside public @interface MaskRequired { MaskingType type ( ) ; }

@Target({ElementType.ANNOTATION_TYPE, ElementType.FIELD})

– 어노테이션 타입, 클래스의 특정 필드에 사용한다고 정의

– 어노테이션 타입, 클래스의 특정 필드에 사용한다고 정의 @Retention(RetentionPolicy.RUNTIME) : 런타임시에 어노테이션 사용할 수 있음

: 런타임시에 어노테이션 사용할 수 있음 @JacksonAnnotationsInside : jackson custom annotation 이라고 정의하는 부분

Masking.java

public class Masking { public static String mask ( MaskingType type , String value ) { String str = “” ; switch ( type ) { case NAME : str = getNameMask ( value ) ; break ; case CONTACT : str = getContactMask ( value ) ; break ; case DETAIL_ADDRESS : str = getDetailAddressMask ( value ) ; break ; default : break ; } return str ; } . . . }

어노테이션에 속성의 정의한 enum 값에 따라서 마스킹 규칙을 매핑해준다.

처음엔 참고 블로그 내용처럼 interface를 구현하는 XXMasking 클래스를 각각 만들려고 하였으나 MaskingPropertySerializer 의 createContextual() 에서 instance를 넘기려고 했으나, java에서는 그런 방법이 없어서 enum 속성과 Masking 클래스를 분리했다.

Custom Serialize

어노테이션이 붙은 필드는 custom serialize 를 사용하도록 설정해야 한다.

public class MaskingPropertySerializer extends StdSerializer < String > implements ContextualSerializer { MaskingType maskingType ; protected MaskingPropertySerializer ( ) { super ( String . class ) ; } protected MaskingPropertySerializer ( MaskingType maskingType ) { super ( String . class ) ; this . maskingType = maskingType ; } @Override public void serialize ( String value , JsonGenerator gen , SerializerProvider provider ) throws IOException { gen . writeString ( Masking . mask ( maskingType , value ) ) ; } @Override public JsonSerializer < ? > createContextual ( SerializerProvider prov , BeanProperty property ) throws JsonMappingException { MaskingType maskingTypeValue = null ; MaskRequired ann = null ; if ( property != null ) { ann = property . getAnnotation ( MaskRequired . class ) ; } if ( ann != null ) { maskingTypeValue = ann . type ( ) ; } return new MaskingPropertySerializer ( maskingTypeValue ) ; } }

gen.writeString(Masking.mask(maskingType, value)); : 구현한 mask() 메소드를 타도록 한다.

여기까지 작성하면, dto의 해당하는 필드 위에

@JsonSerialize ( using = MaskingPropertySerializer . class ) @MaskRequired ( type = MaskType . NAME ) private String name ;

이렇게 @JsonSerialize(using = MaskingPropertySerializer.class) 을 반복적으로 달아주어야 한다.

더 편리하게 이용하기 위해서는

@Target ( { ElementType . ANNOTATION_TYPE , ElementType . FIELD } ) @Retention ( RetentionPolicy . RUNTIME ) @JsonSerialize ( using = MaskingPropertySerializer . class ) public @interface MaskRequired { MaskingType type ( ) ; }

MaskRequired 인터페이스에 두 어노테이션을 더 추가한다.

이렇게 하면 마스킹 처리가 필요한 dto의 필드 위에

@MaskRequired ( type = MaskType . NAME ) private String name ;

이렇게만 작성해주면 된다.

키워드에 대한 정보 개인 정보 마스킹

다음은 Bing에서 개인 정보 마스킹 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

See also  Dents De Herse Plate | Reprise De Labours Avec La Herse Plate (Petit Problème De Soudure...) 상위 180개 베스트 답변
See also  일용직 4 대 보험 | 일용직 근로자 ] 4대보험 신고, 근로내용확인 신고서 제출 245 개의 가장 정확한 답변

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 개인정보에 마스킹하고 아무나 못 보게 비번 걸기

  • 공여사들 엑셀
  • 엑심위 문제풀이
  • 엑셀 문제풀이
  • 실무엑셀
  • 직장인 엑셀
  • 엑셀 시트보호
  • 엑셀 시트잠금
  • 엑셀 비밀번호 설정
  • 엑셀 시트 숨김
  • 엑셀 숨김 비밀번호
  • 엑셀 셀 보호
  • 엑셀 셀 숨김
  • 엑셀 개인정보 마스킹
  • 엑셀 기초
  • 엑셀 개인정보처리
  • 엑셀 주민등록번호
  • 엑셀 전화번호
  • 엑셀 개인정보 가리기
  • 엑셀 개인정보 별표
  • 엑셀 별표
  • 엑셀 마스킹
  • 엑셀 숫자 표시형식
  • 공여사들 엑셀 기초
  • 공여사들 엑셀 텍스트
  • 찾아바꾸기
  • 엑셀 하이픈 지우기
  • 오징어게임
  • 오일남
  • 성기훈
  • 오징어게임 번호
  • 공여사들 직장인 엑셀
  • 공여사들 엑셀 단축키

개인정보에 #마스킹하고 #아무나 #못 #보게 #비번 #걸기


YouTube에서 개인 정보 마스킹 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 개인정보에 마스킹하고 아무나 못 보게 비번 걸기 | 개인 정보 마스킹, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Comment