안드로이드 스튜디오

수강신청 어플 만들기 - Android Studio with JAVA(3)-2

s2jinny 2022. 12. 20. 03:38

(3편)강의 인기 순위 리스트->어플리케이션 정보->개인정보 암호화-> 어플 개발

3-1 강의 인기순위 리스트

3-2 어플리케이션 정보

3-3 개인정보 암호화 

 

(3)-2. 어플리케이션 정보 넣기 

loginActivity.java 파일 안에

TextView information=(TextView)findViewById(R.id.informationButton);
information.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        startActivity(new Intent(LoginActivity.this, Pop.class));
    }
});

 새로운 액티비티를 시작해줄거고 현재 패이지에서 pop이라는 액티비티로 intent화면 전환 해주라는 뜻.

따라서 어플리케이션 정보 버튼을 누르면 팝업창처럼 새로운 창(pop.java로 intent)이 뜨게 함.

 

Pop.java파일안에

public class Pop extends Activity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pop); //pop이라는 레이아웃을 띄어주라.

        DisplayMetrics dm=new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm); 

        int width=dm.widthPixels;
        int height=dm.heightPixels;

        getWindow().setLayout((int)(width*0.9),(int)(height*0.85)); 
    }
}

Activity 상속 , 레이아웃 pop.xml로 띄어주기 

화면 조정을 위한 DisplayMetrics 선언과 초기셋팅

DisplayMetrics dm=new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);

화면의 90% 크기의 가로와 85%의 세로 사이즈로 만듦.

int width=dm.widthPixels;
int height=dm.heightPixels;

getWindow().setLayout((int)(width*0.9),(int)(height*0.85)); 

 

values->Themes->thems.xml안에

<style name="Theme.AppCompat.Pop">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowCloseOnTouchOutside">true</item>

</style>

android:windowIsTranslucent 는 활동이 반투명 상태로 존재하는 창을 나타낸다. 즉, true(투명) 또는 false(불투명).

android:windowCloseOnTouchOutside는 XML 스크립트 를 사용하여 외부를 클릭하면 활동을 종료(true).

 

manifests에 가서 환경 설정하기(Pop클래스 매칭하고 방금 만든거 매칭시킨거임)

xml파일 이렇게 만들어줌.

 

 

(3)-2 결과: 어플리케이션 정보 버튼 클릭-> 내 정보 나오게 함.

(3)편의 마지막 !! 개인정보 암호화

php 파일변경해줘야함.

1. UserRegister :회원가입 php 파일 

 $checkedPassword=password_hash($userPassword, PASSWORD_DEFAULT); 추가한다.

mysqli_stmt_bind_param($statement, "sssss", $userID, $checkedPassword, $userGender, $userMajor, $userEmail);  // $userPassword 에서  $checkedPassword로 변경한다.

password_hash: php에서 기본으로 제공하는 함수임 (암호화, password_default) 관리자와 해커도 모르는 암호화 형식의 비밀번호를 해독하기 어렵게 만든다.

 

2. UserLogin : 로그인 php 파일도 변경한다.

     while(mysqli_stmt_fetch($statement)){
      if(password_verify($userPassword, $checkedPassword)){
       $response["success"] = true;
       $response["userID"] = $userID;

}                           //이것도 $userPassword 에서  $checkedPassword로 변경한다.

 password_verify  이용해서 값얻어오기~

 

개인정보 암호화 끝 !! 한번 차이점을 살펴보자.

 암호화 한 후 회원가입하면 userPassword를 보면 해독할 수 없다!

암호화 하기 전 회원가입 한 userID: soojin 과 암호화 한 후의 aq,bob,jooah 차이점이 눈에 보이죠?!~?

관리자인 나도 회원의 비밀번호를 보지 못한다!!