⚑ToolZip
λΈ”λ‘œκ·ΈπŸ› οΈ 도ꡬ μ‚¬μš©ν•˜κΈ°
← λΈ”λ‘œκ·Έ λͺ©λ‘
πŸ’» dev2026λ…„ 10μ›” 7일

ν•΄μ‹œ(Hash)λž€ 무엇인가 β€” λΉ„λ°€λ²ˆν˜Έκ°€ μ €μž₯λ˜λŠ” 방식

#ν•΄μ‹œλž€λ¬΄μ—‡μΈκ°€#λΉ„λ°€λ²ˆν˜Έμ €μž₯방식#ν•΄μ‹œν•¨μˆ˜μ›λ¦¬#SHA256μ΄λž€#μ†”νŒ…μ΄λž€#ν•΄μ‹œμ•”ν˜Έν™”μ°¨μ΄

μ—¬λŸ¬λΆ„μ˜ λΉ„λ°€λ²ˆν˜ΈλŠ” μ–΄λ–»κ²Œ μ €μž₯λ κΉŒμš”? μ–΄λ”˜κ°€μ— "password123"이라고 κ·ΈλŒ€λ‘œ μ €μž₯λ˜μ–΄ μžˆμ„κΉŒμš”? κ·Έλ ‡μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. ν•΄μ‹œλΌλŠ” 기술 덕뢄에 μ—¬λŸ¬λΆ„μ˜ λΉ„λ°€λ²ˆν˜ΈλŠ” 아무도 읽을 수 μ—†λŠ” ν˜•νƒœλ‘œ μ €μž₯λ©λ‹ˆλ‹€.


ν•΄μ‹œ ν•¨μˆ˜λž€

ν•΄μ‹œ ν•¨μˆ˜λŠ” μ–΄λ–€ 데이터λ₯Ό 넣어도 μ •ν•΄μ§„ 길이의 κ²°κ³Όλ₯Ό λ‚΄λ±‰λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. μ€‘μš”ν•œ νŠΉμ„±μ΄ μžˆμŠ΅λ‹ˆλ‹€. 같은 μž…λ ₯은 항상 같은 κ²°κ³Όκ°€ λ‚˜μ˜€μ§€λ§Œ, κ²°κ³Όλ₯Ό 보고 μ›λž˜ μž…λ ₯을 μ•Œμ•„λ‚Ό μˆ˜λŠ” μ—†μŠ΅λ‹ˆλ‹€. μΌλ°©ν†΅ν–‰μž…λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ SHA-256μ΄λΌλŠ” ν•΄μ‹œ ν•¨μˆ˜μ— "hello"λ₯Ό λ„£μœΌλ©΄ 항상 이 값이 λ‚˜μ˜΅λ‹ˆλ‹€.

2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

64자리 16μ§„μˆ˜μž…λ‹ˆλ‹€. 이 값을 보고 μ›λž˜ μž…λ ₯이 "hello"μ˜€λ‹€λŠ” 것을 μ•Œμ•„λ‚Ό 방법은 μ—†μŠ΅λ‹ˆλ‹€.


λΉ„λ°€λ²ˆν˜Έκ°€ μ €μž₯λ˜λŠ” 방식

μ‚¬μ΄νŠΈμ— 처음 κ°€μž…ν•  λ•Œ λΉ„λ°€λ²ˆν˜Έλ₯Ό μž…λ ₯ν•˜λ©΄ μ„œλ²„λŠ” 이것을 κ·ΈλŒ€λ‘œ μ €μž₯ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

  1. μž…λ ₯ν•œ λΉ„λ°€λ²ˆν˜Έλ₯Ό ν•΄μ‹œ ν•¨μˆ˜μ— λ„£μŠ΅λ‹ˆλ‹€.
  2. λ‚˜μ˜¨ κ²°κ³Όκ°’(ν•΄μ‹œκ°’)을 λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯ν•©λ‹ˆλ‹€.
  3. 원본 λΉ„λ°€λ²ˆν˜ΈλŠ” 어디에도 μ €μž₯λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ‹€μŒμ— λ‘œκ·ΈμΈν•  λ•ŒλŠ” μ΄λ ‡κ²Œ λ™μž‘ν•©λ‹ˆλ‹€.

  1. μž…λ ₯ν•œ λΉ„λ°€λ²ˆν˜Έλ₯Ό ν•΄μ‹œ ν•¨μˆ˜μ— λ„£μŠ΅λ‹ˆλ‹€.
  2. λ‚˜μ˜¨ 결과값을 λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯된 κ°’κ³Ό λΉ„κ΅ν•©λ‹ˆλ‹€.
  3. 두 값이 κ°™μœΌλ©΄ 둜그인 μ„±κ³΅μž…λ‹ˆλ‹€.

μ„œλ²„λŠ” λΉ„λ°€λ²ˆν˜Έλ₯Ό λͺ¨λ₯΄κ³ λ„ λΉ„λ°€λ²ˆν˜Έκ°€ λ§žλŠ”μ§€ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.


해킹을 당해도 λΉ„λ°€λ²ˆν˜Έκ°€ μ•ˆμ „ν•œ 이유

μ‚¬μ΄νŠΈκ°€ ν•΄ν‚Ήλ‹Ήν•΄μ„œ λ°μ΄ν„°λ² μ΄μŠ€κ°€ μœ μΆœλλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€. 해컀가 κ°€μ Έκ°„ 것은 ν•΄μ‹œκ°’λΏμž…λ‹ˆλ‹€. "2cf24dba..."λΌλŠ” 값을 보고 μ›λž˜ λΉ„λ°€λ²ˆν˜Έκ°€ "hello"μ˜€λ‹€λŠ” 것을 μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€.

μ΄λ‘ μ μœΌλ‘œλŠ” κ·Έλ ‡μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ ν˜„μ‹€μ—μ„œλŠ” 쑰금 λ‹€λ¦…λ‹ˆλ‹€.


레인보우 ν…Œμ΄λΈ”μ˜ μœ„ν˜‘

"password", "123456", "qwerty" 같은 ν”ν•œ λΉ„λ°€λ²ˆν˜Έμ˜ ν•΄μ‹œκ°’μ€ 미리 κ³„μ‚°ν•΄λ‘˜ 수 μžˆμŠ΅λ‹ˆλ‹€. 이런 미리 κ³„μ‚°λœ ν•΄μ‹œκ°’ λͺ©λ‘μ„ 레인보우 ν…Œμ΄λΈ”μ΄λΌκ³  ν•©λ‹ˆλ‹€.

해컀가 ν•΄μ‹œκ°’ "2cf24dba..."λ₯Ό κ°€μ§€κ³  레인보우 ν…Œμ΄λΈ”μ—μ„œ 찾으면 "hello"에 ν•΄λ‹Ήν•˜λŠ” κ°’μ΄λΌλŠ” 것을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‹¨μˆœν•œ ν•΄μ‹œλ§ŒμœΌλ‘œλŠ” λΆ€μ‘±ν•©λ‹ˆλ‹€.


μ†”νŒ… β€” 레인보우 ν…Œμ΄λΈ”μ„ 무λ ₯ν™”ν•˜λŠ” 방법

μ†”νŒ…(Salting)은 λΉ„λ°€λ²ˆν˜Έμ— λ¬΄μž‘μœ„ κ°’(μ†”νŠΈ)을 μΆ”κ°€ν•΄μ„œ ν•΄μ‹œν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€.

같은 "hello"라도 μ†”νŠΈκ°€ "abc123"이라면 "helloabc123"을 ν•΄μ‹œν•©λ‹ˆλ‹€. μ‚¬μš©μžλ§ˆλ‹€ λ‹€λ₯Έ μ†”νŠΈλ₯Ό μ‚¬μš©ν•˜λ―€λ‘œ 같은 λΉ„λ°€λ²ˆν˜Έμ—¬λ„ λ‹€λ₯Έ ν•΄μ‹œκ°’μ΄ λ‚˜μ˜΅λ‹ˆλ‹€. 레인보우 ν…Œμ΄λΈ”μ΄ 무λ ₯ν™”λ©λ‹ˆλ‹€.


파일 무결성 확인에도 μ‚¬μš©λ©λ‹ˆλ‹€

ν•΄μ‹œλŠ” λΉ„λ°€λ²ˆν˜Έ 외에도 파일이 λ³€μ‘°λλŠ”μ§€ ν™•μΈν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό 배포할 λ•Œ 파일의 ν•΄μ‹œκ°’μ„ ν•¨κ»˜ κ³΅κ°œν•©λ‹ˆλ‹€. λ‹€μš΄λ‘œλ“œν•œ 파일의 ν•΄μ‹œκ°’μ„ κ³„μ‚°ν•΄μ„œ 곡개된 κ°’κ³Ό λΉ„κ΅ν•˜λ©΄ 파일이 쀑간에 λ³€μ‘°λλŠ”μ§€ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.


정리

ν•΄μ‹œ ν•¨μˆ˜λŠ” 데이터λ₯Ό μΌλ°©ν†΅ν–‰μœΌλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. κ²°κ³Όλ₯Ό 보고 원본을 μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€. 이 νŠΉμ„±μ„ μ΄μš©ν•΄ λΉ„λ°€λ²ˆν˜Έλ₯Ό μ•ˆμ „ν•˜κ²Œ μ €μž₯ν•˜κ³ , 파일의 무결성을 ν™•μΈν•©λ‹ˆλ‹€. μ—¬λŸ¬λΆ„μ΄ λΉ„λ°€λ²ˆν˜Έλ₯Ό μžŠμ–΄λ²„λ Έμ„ λ•Œ μ‚¬μ΄νŠΈκ°€ λΉ„λ°€λ²ˆν˜Έλ₯Ό μ•Œλ €μ£Όμ§€ λͺ»ν•˜κ³  μž¬μ„€μ •λ§Œ κ°€λŠ₯ν•œ μ΄μœ κ°€ λ°”λ‘œ μ΄κ²ƒμž…λ‹ˆλ‹€.

πŸ› οΈ
μ§€κΈˆ λ°”λ‘œ 도ꡬ μ‚¬μš©ν•΄λ³΄κΈ°
μ„€μΉ˜ 없이 Β· 무료 Β· μ„œλ²„ 전솑 μ—†μŒ
도ꡬ μ—΄κΈ° β†’
ν•΄μ‹œ(Hash)λž€ 무엇인가 β€” λΉ„λ°€λ²ˆν˜Έκ°€ μ €μž₯λ˜λŠ” 방식 β€” ToolZip | ToolZip