์ํธํ ํด์ ํจ์
์ํธํ ํด์ ํจ์(Crypto Hash Function)
์ ์์๋ณด๊ณ ์ด๋ฅผ ์คํ๋ง ๋ถํธ์ ์ฌ์ฉํด๋ณด์.
ํด์ ํจ์๋?
ํด์ ํจ์๋ x
๋ผ๋ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ์ด ๋ฐ์ดํฐ๋ณด๋ค ์์ ํฌ๊ธฐ์ ๋ฐ์ดํฐ์ธ h(x)
๋ก ๋งคํํด์ฃผ๋ ํจ์๋ฅผ ๋งํ๋ค.
์ฌ๊ธฐ์ ๋งคํ์ผ๋ก ์ถ๋ ฅ ๋ ๋ฐ์ดํฐ๋ ์ธ์์ ๋ฐ๋ผ ๋ฌ๋ผ์ผ ํ๋ฉฐ, ์๋์ ๋ฐ์ดํฐ๋ณด๋ค ํฌ๊ธฐ๊ฐ ์์ ๊ณ ์ ๋ ๊ธธ์ด๋ก ์ด๋ฃจ์ด์ ธ์ผ ํ๋ฉฐ, ์๋ ๋ฐ์ดํฐ์ ์ง๋ฌธ๊ณผ ๊ฐ์ ์ญํ ์ ํ๋ค.
์ํธํ ํด์ ํจ์
์ํธํ ํด์ ํจ์๋ ํด์ ํจ์๋ฅผ ์ํธํ์ ์ฌ์ฉํ ์ ์๋๋ก ๋ง๋ ํจ์๋ฅผ ๋งํ๋ค.
์ด๋ ํด์ ํจ์์ ๊ฐ์ผ๋ก๋ถํฐ ์๋์ ์๋ ฅ ๊ฐ์ ์ฐพ๊ธฐ ์ด๋ ค์์ผ ํ๊ณ ๋ค์์ ์กฐ๊ฑด์ ๋ง์กฑํด์ผ ํ๋ค.
- output์ ํฌ๊ธฐ๊ฐ ์์์ผ ํ๋ค.
- output์ ๊ตฌํ๊ธฐ ์์ํด์ผ ํ๋ค.(์ฐ์ฐ์ด ํจ์จ์ ์ด์ผ ํ๋ค.)
- ์ฝํ ์ถฉ๋ ์ ํญ์ฑ
- x์ output์ธ h(x)๊ฐ ์ฃผ์ด์ก์ ๋, h(y) = h(x)์ด๋ฉฐ y์ x๊ฐ ๊ฐ์ง ์์ y๋ฅผ ์ฐพ์ ์ ์์ด์ผ ํ๋ค.
- ๊ฐํ ์ถฉ๋ ์ ํญ์ฑ
- x์ y๊ฐ ๋ค๋ฅด๋ฉด์ h(x) = h(y)์ธ x, y๋ฅผ ์ฐพ์ ์ ์์ด์ผ ํ๋ค.
์คํ๋ง ๋ถํธ ์ค์ต
SpringConfig
WebSecurityConfigurerAdapter
์ ์์ํ๋ SpringConfig
๊ฐ ์๋ค๊ณ ํ์.
๋น ๋ฑ๋ก
@Bean
public BCryptPasswordEncoder pwdEncode(){
return new BCryptPasswordEncoder();
};
์ํธํ ํด์ ํจ์๋ฅผ ๊ตฌํํด ์ฃผ๋ BCryptPasswordEncoder
๊ฐ์ฒด๋ฅผ Bean ๋ฑ๋กํด ์ค๋ค.
BCryptPasswordEncoder ์ฌ์ฉ
String rawPassword = userJoinDto.getPassword();
String encPassword = bCryptPasswordEncoder.encode(rawPassword);
ํ์์ด ๋ฑ๋ก๋ ๋ ์์ฒญ๋ฐ์ password๋ฅผ ์์ ๊ฐ์ด ํด์ ์ํธํ๋ก ๋ณ๊ฒฝํด์ ํ์ ๋ฐ์ดํฐ์ ์ ์ฅํด ์ค๋ค.
ํด๋ผ์ด์ธํธ ํ์ ๊ฐ์
๋ง๋ค์ด ๋ ํ์๊ฐ์
ํผ์ ๋ค์๊ณผ ๊ฐ์ด ๊ธฐ์
ํ์.
์ด๋ ๋น๋ฐ๋ฒํธ๋ ๊ฐ๋จํ๊ฒ "1"์ด๋ผ๊ณ ์
๋ ฅํ๋ค.
DB ์กฐํ
์
๋ ฅํ๋ 1์ด ํด์ ์ํธํ๋์ด ์ ์ฅ๋ ๊ฑธ ํ์ธํ ์ ์๋ค.
'๋ณด์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฟ ํค-์ธ์ , JWT ํ ํฐ ์ธ์ฆ (0) | 2022.03.17 |
---|---|
Bcrypt ์ธ์ฝ๋ฉ (0) | 2022.03.15 |
A5/1 แแ ฎแแ งแซ(C++) (0) | 2022.03.13 |