투케이2K

198. (TWOK/LOGIC) [android] 안드로이드 에딧트 텍스트 EditText 시크릿 키 중요 정보 암호화 처리 및 클립보드 복사 기능 막기 로직 본문

투케이2K 로직정리

198. (TWOK/LOGIC) [android] 안드로이드 에딧트 텍스트 EditText 시크릿 키 중요 정보 암호화 처리 및 클립보드 복사 기능 막기 로직

투케이2K 2026. 6. 7. 10:12
728x90
반응형

[로직 정리]

정리 로직 : Mobile / Android

상태 : [android] 안드로이드 에딧트 텍스트 EditText 시크릿 키 중요 정보 암호화 처리 및 클립보드 복사 기능 막기 로직

 

[설 명]

// --------------------------------------------------------------------------------------
[사전) 설정 및 정보 확인 사항]
// --------------------------------------------------------------------------------------

1. 제 목 : [android] 안드로이드 에딧트 텍스트 EditText 시크릿 키 중요 정보 암호화 처리 및 클립보드 복사 기능 막기 로직


2. 테스트 환경 : Mobile / Android / EditText


3. 사전) 👉 EditText 간략 설명

  >> EditText 는 안드로이드에서 사용자가 텍스트를 입력하거나 수정할 수 있게 해주는 UI 컴포넌트입니다.

  >> 로그인 화면의 아이디/비밀번호 입력창, 검색창, 채팅 입력창 등이 모두 EditText를 사용합니다.

  >> EditText 는 구조적으로 TextView 를 상속합니다.

    View
    └── TextView
          └── EditText

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[로직 설명]
// --------------------------------------------------------------------------------------

------------------------------------------------------
🟦 사전 정리) 로직 구현 관련 필요 내용 정리
------------------------------------------------------

1. 현재 사용 중이던 앱에는 Aws IoT Core 연동 IAM 계정 AccessKey , SecretKey 정보가 마스킹 없이 EditText UI 에 그대로 표시되는 상태 인데, 마스킹 처리가 필요한 이슈 발생


2. 앱 배포 및 공유를 위해 민감한 정보를 표시하는 EditText 마스킹 처리 및 클립보드 기능 막기 기능 구현 필요



------------------------------------------------------
🟦 로직 정리) EditText 민감한 정보는 마스킹 처리 및 클립보드 복사 기능 제한 구현
------------------------------------------------------

1. [설 정] 안드로이드 액티비티 onCreate 부분에서 민감한 정보가 표시 되는 EditText 옵션 설정 값 변경 수행

  // EditText 컴포넌트 생성
  EditText editText = findViewById(R.id.editText);

  // 롱 클릭 방지
  editText.setLongClickable(false);

  // 텍스트 선택 방지
  editText.setTextIsSelectable(false);

  // 비밀 번호 입력 타입 변경
  editText.setInputType(
          InputType.TYPE_CLASS_TEXT |
          InputType.TYPE_TEXT_VARIATION_PASSWORD
  );


2. [설 정] 안드로이드 액티비티 onCreate 부분에서 EditText 클립 보드 동작 이벤트 처리 false 처리 수행

  editText.setCustomSelectionActionModeCallback(
          new ActionMode.Callback() {
              @Override
              public boolean onCreateActionMode(ActionMode mode, Menu menu) {
                  return false; // 👉 클립보드 창 표시 없애기
              }

              @Override
              public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
                  return false;
              }

              @Override
              public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
                  return false;
              }

              @Override
              public void onDestroyActionMode(ActionMode mode) {

              }
          }
  );


3. [테스트] 안드로이드 앱 실행 및 해당 액티비티 화면으로 진입 수행


4. [테스트] 앱 화면에서 EditText 가 password 비밀 번호 마스킹 처리가 정상적으로 되었는지 확인


5. [테스트] 앱 화면에서 EditText 롱 클릭 및 텍스트 복사를 위한 클립 보드 창 호출 수행 실시


6. [테스트] EditText 클립 보드 창에서 복사 , 전체 선택 등의 이벤트가 표시 되지 않는 것 확인



------------------------------------------------------
🟦 참고 사항) 안드로이드 EditText XML 파일에서 간단히 수정을 하는 경우 longClickable , textIsSelectable , inputType 변경 소스 코드 첨부
------------------------------------------------------

  <EditText
      android:id="@+id/editPassword"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      
      android:hint="비밀번호 입력"

      android:text=""
      android:textColor="#333"
      android:background="#000"

      android:longClickable="false" // 👉 롱 클릭 막기
      android:textIsSelectable="false" // 👉 텍스트 선택 막기

      android:inputType="textPassword" // 👉 비밀 번호 타입 선택
  />

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

▶️ [업무 이슈] 안드로이드 기존 개인 사용 앱에서 공용 배포를 위한 EditText 시크릿 키 정보 암호화 처리 및 클립보드 복사 기능 막기 개발

https://kkh0977.tistory.com/8850

https://blog.naver.com/kkh0977/224295800202


▶️ [간단 소스] 안드로이드 EditText 클립 보드 기능 막기 방법 - 복사 (Copy) 붙여넣기 (Paste)

https://kkh0977.tistory.com/8847

https://blog.naver.com/kkh0977/224295306547


▶️ [기능 개선] android 안드로이드 EditText 에딧트 텍스트 스크롤 전환 및 클립 보드 복사, 붙여넣기 기능 개발 요청

https://kkh0977.tistory.com/8080

https://blog.naver.com/kkh0977/223906181711?trackingCode=blog_bloghome_searchlist


▶️ [개선 요청] android 안드로이드 화면 전환 시 EditText 설정 값 자동 셋팅 및 클릭 , 터치 이벤트 방지 요청

https://kkh0977.tistory.com/8029

https://blog.naver.com/kkh0977/223881027095?trackingCode=blog_bloghome_searchlist


▶️ [업무 이슈] 안드로이드 EditText 키보드 inputType phone 폰번호 입력 상태에서 클립보드 붙여 넣기 시 숫자 이외 문자열 추가 이슈

https://kkh0977.tistory.com/7682

https://blog.naver.com/kkh0977/223746467782?trackingCode=blog_bloghome_searchlist

// --------------------------------------------------------------------------------------
 
728x90
반응형
Comments