전체 글(112)
-
MD5, SHA1, SHA256
public static String md5(String msg) throws NoSuchAlgorithmException { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(msg.getBytes()); return byteToHexString(md.digest()); } public static String sha1(String msg) throws NoSuchAlgorithmException { MessageDigest md = MessageDigest.getInstance("SHA-1"); md.update(msg.getBytes()); return byteToHexString(md.digest()); } // SHA-256 암호화는..
2018.10.03 -
BCrypt 암호화
ㅇ BCrypt 암호화 : 현재까지 가장 안전한 해쉬 알고리즘은 BCrypt이다. 비밀번호 암호화에 특화되어 고안된 알고리즘 ㅇ build.gradle에 아래 추가 dependencies { implementation group: 'de.svenkubiak', name: 'jBCrypt', version: '0.4.1' // bcrypt lib } ㅇ MainActivity.java String password = "12345*-/+"; // 입력값 // 위 비밀번호의 BCrypt 알고리즘 해쉬 생성, passwordHashed 변수는 실제 데이터베이스에 저장될 60바이트의 문자열이 된다. // 숫자가 높아질수록 해쉬를 생성하고 검증하는 시간은 느려진다. // 즉, 보안이 우수해진다. 하지만 그만큼 응답..
2018.10.03 -
암호화(AES)
ㅇ AES암호화 : 암/복호화에 사용되는 키가 같음(비밀키) / 대칭키 암호화 public class AES256Chiper { public static byte[] ivBytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; //AES256 암호화 public static String encode(String data, byte[] secretKey) throws java.io.UnsupportedEncodingException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, Invalid..
2018.10.02 -
안드로이드 생명주기
ㅇ Activity onCreate() - onStart() - (onRestart()) - onResume() - onPause() - onStop() - onDestroy() ㅇ Fragment onAttach() - onCreate() - onCreateView() - onActivityCreated() // Activity의 created - onStart() - onResume() - onPause() - onStop() - onDestroyView() - onDestroy() - onDetach() // Activity의 destroyed
2018.08.17 -
안드로이드 누가 이상 버전 다중창 막기
AndroidManifest.xml에서 android:screenOrientation="portrait"/"landscape" 설정을 해도 안드로이드 누가(7.0) 버전부터 추가된 다중 창 기능 때문에 소용이 없어졌음(화면 회전을 막더라도 다중 창 모드로 진입하면 데이터가 날아갈 수 있음)앱의 지원 대상 기기에 안드로이드 누가가 포함되어 있다면 액티비티가 다중 창을 지원하게 할 것인지를 결정할 수 있음기존의 앱에서 아무것도 건드리지 않으면 기본적으로 다중 창에 대응, 다중 창을 지원하지 못하게 할 때는 다음과 같이 설정해서 비활성화할 수 있음. 또는 => AndroidManifest에서 resizeableActivity 속성을 추가, 이 속성의 기본값은 true
2018.08.17 -
onSaveInstanceState()
onSaveInstanceState() : 액티비티가 강제 종료되는 상황에 대비하여 액티비티의 상태 정보를 저장할 수 있도록 함 ex) 화면을 회전하여 시스템이 강제로 액티비티를 종료하면, 종료 직전에 onSaveInstanceState() 콜백 메소드를 호출하면서 Bundle이라는 객체에 상태를 저장할 수 있음 @Override protected void onSaveInstanceState(Bundle outState) { // 상태 저장 outState.putInt(STATE_SCORE, score); outState.putInt(STATE_LEVEL, level); // 항상 슈퍼클래스 메소드 호출해야 함 super.onSaveInstanceState(outState); } Bundle 객체에 저장..
2018.08.17