본문 바로가기

Programming Language/Java19

[암호화] SHA-256 암호화 방법 (알고리즘 소스코드 포함) 메인 프로젝트 진행중에 로그인 부분의 암호화를 담당하게 되었다. 밀린 학습들이 결국 메인 프로젝트를 늪으로 끌고 가는거 같ㄷr.... 띠로리 산을 넘으면 또 다른 산이 기다리고 있지만 그래도 잘 해내고 있다. 아무튼 간단히라도 기록을 남겨두려고 한다! 1. SHA-256 알고리즘 코드 - 알고리즘 코드는 다양하게 있었고 SHA-256 뿐만 아니라 MD5 도 있었는데 MD5는 암호화 결함이 발견되어 SHA-256 을 많이 사용하는 것으로 알고있다. SHA-256 알고리즘도 다양하기 때문에 다른 알고리즘도 적용해 보는 것을 추천한다. - SHA-256 은 단방향(암호화만 제공) 알고리즘이니 참고할 것 *hex: 16진수 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2.. 2021. 9. 6.
[자바의 정석] ch7-24 ~ ch7-26 객체지향 개념 정리 (참조변수의 형변환, instanceof 연산자) ch7-24,25 참조변수의 형변환 - 사용할 수 있는 멤버의 갯수를 조절하는 것 - [중요!] 조상 자손 관계의 참조변수는 서로 형변환 가능 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class Car { } class FireEngine extends Car { } class Ambulance extends Car { } FireEngine f = new FireEngine(); Car c = (Car)f; // OK. 조상인 Car타입으로 형변환(생략가능) FireEngine f2 = (FireEngine)c; // OK. 자손인 FireEngine타입으로 형변환(생략가능) Ambulance a = (Ambulance)f; // 에러! 상속관계가 아닌 클래스 간의 형변환 불가 .. 2021. 8. 10.
[자바의 정석] ch7-21 ~ ch7-23 객체지향 개념 정리 (접근제어자, 캡슐화, 다형성) ch7-21 접근 제어자(access modifier) private : 같은 클래스 내에서만 접근이 가능함 (default) : 같은 패키지 내에서만 접근이 가능함 protected : 같은 패키지 내에서, 그리고 다른 패키지의 자손 클래스에서 접근이 가능함 public : 접근 제한이 전혀없음 접근제한없음 같은 패키지 + 자손 같은 패키지 같은 클래스 public > protected > (default) > private 제어자 같은 클래스 같은 패키지 자손 클래스 전체 public O O O O protected O O O (default) O O private O *쉽게 생각하면, private 는 같은 파일 내부이고 default는 같은 폴더 내부이며, protected는 같은폴더 + 자손이라.. 2021. 7. 24.
[자바의 정석] ch7-12 ~ ch7-20 객체지향 개념 정리 (패키지, import문, 제어자, abstract ) ch7-12 패키지(package) - 서로 관련된 클래스의 묶음 - 클래스는 클래스 파일(*.class), 패키지는 폴더. 하위 패키지는 하위 폴더 - 클래스의 실제 이름(full name)은 패키지를 포함.(java.lang.String) rt.jar는 클래스들을 압축한 파일(JDK설치경로\jre\lib에 위치) -> Java9 부터는 없고 module 개념으로 변경 -jar는 zip 과 같음 ch7-13 패키지의 선언 - 패키지는 소스파일의 첫 번째 문장으로 단 한번 선언 - 같은 소스 파일의 클래스들은 모두 같은 패키지에 속하게 됨 - 패키지 선언이 없으면 이름없는(unnamed) 패키지에 속하게 됨 (eclipse 에서는 default package) *bin 폴더 - 컴파일된 클래스 파일(*... 2021. 7. 22.
[자바의 정석] ch7-1 ~ ch7-11 객체지향 개념 정리 (상속, Object클래스, 오버라이딩, 참조변수 super, 생성자super() ) ch7-1 상속(Inheritance) - 기존의 클래스로 새로운 클래스를 작성하는 것(코드의 재사용) - 두 클래스를 부모와 자식으로 관계 맺어주는 것 - 자손은 조상(부모의 부모)의 모든 멤버를 상속받음(생성자, 초기화 블럭 제외) - 자손의 멤버 개수는 조상보다 적을 수 없음(같거나 많음) -> 자손의 멤버개수 >= 조상의 멤버 개수 - 자손의 변경은 조상에 영향을 미치지 않음(단, 조상의 변경은 자손에게 영향을 줌) ex) class 자식클래스 extends 부모클래스 { } ch7-3 포함 관계 - 포함(composite) : 클래스의 멤버로 참조변수를 선언하는 것 class Circle { int x; class Circle{ class Point { int y; -----> Point c =.. 2021. 7. 19.
[자바의 정석] ch6-30 ~ ch6-41 객체지향 개념 정리 (오버로딩, 생성자, 생성자 this(), 참조변수 this, 변수의 초기화) ch6-30 오버로딩(overloading) - 한 클래스 안에 같은 이름의 메서드 여러개를 정의하는 것 (하나의 메서드 이름에 메서드 하나여야 하는데, 오버로딩은 하나의 메서드 이름에 여러개의 메서드) - 오버로딩이 성립하기 위한 조건 (3가지) 1. 메서드 이름이 같아야함 2. 매개변수의 개수 또는 타입이 달라야함 3. 반환 타입은 영향 없음 보기1 (조건1만 성립-> 오버로딩 아님) -> 메서드 중복정의 int add(int a, int b) { return a+b; } int add(int x, int y) { return x+y; } 보기2 (조건1만 성립-> 오버로딩 아님) -> 메서드 중복정의 int add(int a, int b) { return a+b; } long add(int a, i.. 2021. 7. 16.