본문 바로가기

암호화

(3)
[Spring Boot] Spring Security JWT Token JWT(Json Web Token) Json 객체를 통해 안전하게 정보를 전송할 수 있는 웹표준 Json 객체를 암호화하여 만든 String 값 기본적으로 암호화가 되어 있어 변조하기 어려움 JWT를 이용하여 로그인 구현 1. gradle dependency 추가 - build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'io.jsonwebtoken:jjwt:0.9.1' } 2. 비밀키 설정 - application.properties jwt.secret=thisiskey 3. JwtTokenProvider 생성 Jwt 생성하고, 유효성을 검증하는 컴포넌트..
[Spring Boot] Spring Security PasswordEncoder PasswordEncoder Spring Sercurity에서 지원하는 비밀번호 단방향 암호화 인터페이스 public interface PasswordEncoder { // 비밀번호 암호화 String encode(CharSequence rawPassword); // 암호화되지 않은 비밀번호(raw)와 암호화된 비밀번호(encoded)가 일치하는지 비교 boolean matches(CharSequence rawPassword, String encodedPassword); // 암호화된 비밀번호를 다시 암호화하고자 할 경우 return true default boolean upgradeEncoding(String encodedPassword) { return false; } } BcryptPasswordE..
[암호화] 양방향 암호화(AES, RSA)와 단방향 암호화(SHA, MD5, BCrypt) 양방향 특정한 key를 통해 암호화와 복호화가 모두 가능한 암호화 주민등록번호나 핸드폰번호처럼 보안이 필요한 정보지만 평문으로 돌릴 필요가 있는 경우 사용 대칭키 private key 하나로 암호화와 복호화 모두 실행함 AES AES 표준은 AES-128, AES-192, AES-256이며, 뒤에 붙은 숫자는 키의 길이(bit)를 의미 주로 AES-128의 개선된 버젼인 AES-256을 사용 미국 정보가 기밀문서를 암호화했을 정도로 신뢰도가 높은 알고리즘으로, 사람들은 키가 없으면 해독하는 것이 불가능하다고 이야기함 신뢰도가 높고, 속도가 빠름 private key가 유출될 경우, 모든 정보가 노출됨 비대칭키 public key로 암호화, private key로 복호화 함 RSA 소인수분해를 이용한 알고..