๐ฉโ๐ป ํ๋ก์ ํธ์์ ์ด๋ค ์ํธํ๋ฅผ ์ธ ๊ฒ์ธ์ง ๊ณ ๋ฏผํ๋ค๊ฐ Bcrypt๋ฅผ ์ฌ์ฉํ๋๋ก ํด Bcrypt๊ฐ ๋ฌด์์ธ์ง์ ๋ํด ์์ฑํด๋ณด๊ฒ ๋ค!
๋จ๋ฐฉํฅ ์ํธํ๋ฅผ ์ํด ๋ง๋ค์ด์ง ํด์ ํจ์
์๋ฐฉํฅ์ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ํธํ ๋ฐ ๋ณตํธํ๋ฅผ ํ ์ ์๋ค. ์ฆ, ํค๊ฐ ์ ์ถ๋์ง ์๋๋ก ๊ด๋ฆฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ์ถ๋ ๊ฑฑ์ ์ด ํ์์๋ ๋จ๋ฐฉํฅ์ ์ ํํ๋ค.
์ํ์ ์ผ๋ก ๋ถ๊ฐ๋ฅํ๋ค!
๋๋ถ๋ถ์ ๋จ๋ฐฉํฅ ์ํธํ ํจ์๋ ์ํ์ ์ผ๋ก ์ญํจ์๋ฅผ ์ฐพ๊ธฐ ์ด๋ ต๋๋ก ์ค๊ณ๋์ด ์๋ค. ์ด๋ ์ฃผ์ด์ง ์ํธ๋ฌธ์ผ๋ก๋ถํฐ ์๋ฌธ์ ๋ณต๊ตฌํ๋ ๊ฒ์ด ๋งค์ฐ ์ด๋ ต๋ค๋ ๊ฒ์ ์๋ฏธ!
์์์ ํด์ ํจ์๋ ๋์ผํ ์ ๋ ฅ๊ฐ์๋ ๋์ผํ ์ถ๋ ฅ๊ฐ์ ์ค๋ค๊ณ ํ๋ค. ์ด๋ฅผ ์ด์ฉํด ํด์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ณํ ๊ฐ๋ฅํ ๋ชจ๋ ํด์ ๊ฐ์ ์ ์ฅ์์ผ ๋์ ํ๋ฅผ ๋งํ๋ค.
๋น๋ฐ๋ฒํธ์ ์์์ ๋ฌธ์์ด์ธ salt๋ฅผ ์ถ๊ฐํ์ฌ ์ถ๋ ฅ๊ฐ์ ์์ฑํ๊ธฐ ๋๋ฌธ์ ๋น๋ฐ๋ฒํธ๊ฐ ๋จ์ํ๋๋ผ๋ ๋ ์ธ๋ณด์ฐ ํ ์ด๋ธ์์ ์ฐพ์ ์ ์๋ค.
*salt๋ ์ต์ 128bit์ ๋๋ ๋์ด์ผ ์์ ํ๋ค๊ณ ํ๋ค.
ํด์ ํจ์๋ ์๋ ๋น ๋ฅธ ๋ฐ์ดํฐ์ ๊ฒ์์ ๋ชฉ์ ์ผ๋ก ๋ง๋ค์ด์ก๊ธฐ ๋๋ฌธ์ ํด์ปค๋ ๋น ๋ฅธ ์๋๋ก ์์์ ๋ฌธ์์ด์ ์ถ๋ ฅ๊ฐ๊ณผ ํดํนํ ๋์์ ์ถ๋ ฅ๊ฐ์ ๋น๊ตํ ์ ์๋ค.
ํด์ฑ์ ์ฌ๋ฌ ๋ฒ ๋ฐ๋ณตํ์ฌ ์๊ฐ์ ๋๋ฆผ์ผ๋ก์จ ๋ฌด์ฐจ๋ณ ๋์ ๊ณต๊ฒฉ์ ๋๋นํ๋ ๊ฒ์ด๋ค.
Blowfish ์ํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค๊ณ๋ ์ํธํ ํจ์์ด๋ฉฐ ํ์ฌ๊น์ง ์ฌ์ฉ์ค์ธ ๊ฐ์ฅ ๊ฐ๋ ฅํ ํด์ ๋ฉ์ปค๋์ฆ ์ค ํ๋
๋ ์ธ๋ณด์ฐ ํ ์ด๋ธ ๊ณต๊ฒฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ํ ๊ณผ ํค ์คํธ๋ ์นญ์ ์ ์ฉํ ๋ํ์ ์ธ ์
1. ํด์ ์๊ณ ๋ฆฌ์ฆ์ ๋ํ๋ธ๋ค 2b๋ bcrypt๋ฅผ ๋ํ๋ธ๋ค
2. ํค ์คํธ๋ ์นญ์ผ๋ก ๋ฐ๋ณต ํ์๋ฅผ ๋ํ๋ธ๋ค(2^15)
3. 16๋ฐ์ดํธ(128๋นํธ) salt, 22์๋ก ์ธ์ฝ๋ฉ๋ base64
4. 24๋ฐ์ดํธ(192๋นํธ) ํด์, 31์๋ก ์ธ์ฝ๋ฉ๋ base64
๊ทธ๋ ๋ค,, salt๋ฅผ ์์๋ ํด๋น salt์ ๊ฒฐํฉํ์ฌ ์์์ ๋ฌธ์์ด์ ๋ฌด์ฐจ๋ณ ๋์ ์ ํด๋ณด์์ผ ํ๊ธฐ ๋๋ฌธ์ ๊ณต๊ฒฉํ๋ ์ฌ๋ ์ ์ฅ์์๋ ๊ณค๋ํใท ใ ,,
์ฆ, salt์ ๋ ์ธ๋ณด์ฐ ํ ์ด๋ธ ์๋ก ์์ฑํ์ฌ ๋ง๋ค๊ธฐ ์ํด์๋ ์์ฒญ๋๊ฒ ํฐ ๋ฐ์ดํฐ๋ฅผ ํ์๋ก ํ๊ธฐ ๋๋ฌธ์ ์์ฐ์ค๋ฝ๊ฒ ๋ ์ธ๋ณด์ฐ ํ ์ด๋ธ ์์ฑ์ ๋ฐฉ์งํ๋ ๊ฒ์ด๋ค
๋ํ Bcrypt๋ ํ์๋ง๋ค ๋ค๋ฅธ salt๋ฅผ ๋ง๋ค๊ธฐ ๋๋ฌธ์ ๋ ๋ถ๋ด์ด ๋๋ ๊ฒ
์์์ ๋งํ๋ฏ์ด salt๋ 22์๋ก ์ธ์ฝ๋ฉ๋ base64๋ผ๊ณ ํ๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํด๋น ํ์์ ๊ฐ์ ๊ฐ์ ธ์ salt๋ถ๋ถ์ ๋์ฝ๋ฉํ๊ณ ์ฌ์ฉ์๋ก๋ถํฐ ์ป์ ๊ฐ์ ์ด์ฉํด Bcrypt ์ํธํํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ๊ฐ๊ณผ ๋น๊ตํ๋ ๊ฒ์ด๋ค
1) ์ค์น
pip install bcrypt
import bcrypt
password = '1234'
2) ์ํธํ
b = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt())
3) ๋งค์นญ
c = '1234'
bcrypt.checkpw(c.encode('utf-8'), b)
ps.. ๊ธ์ด์ด์ ์๋ฃ ๋ง๋๋ ์ค๋ ฅ์ด ๋๊ณ ์๋ค,,๊ทธ๋๋ ์ดํดํ๊ฑธ ํ ๋๋ก ์ ๋ฆฌํ๋ ๊ฑฐ๋,,์ข๋ค,,๐ข(์ฐ๋๊ฑฐ ์๋๋ผ ๋,,)