๐Ÿ”ฌComputer Science/๋„คํŠธ์›Œํฌ

TIL) ์•”ํ˜ธํ™”, hashing์ด๋ž€, ํ•ด์‹ฑ์ด๋ž€, salt ๋ž€?

hellohailie 2022. 7. 14. 11:41

 

์•”ํ˜ธํ™”๋Š” ์ผ๋ จ์˜ ์ •๋ณด๋ฅผ ์ž„์˜์˜ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ํ•ด๋‹น ๋ฐฉ์‹์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์†Œ์œ ํ•œ ์‚ฌ๋žŒ์„ ์ œ์™ธํ•˜๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์—†๋„๋ก '์•Œ๊ณ ๋ฆฌ์ฆ˜'์„ ์ด์šฉํ•ด ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ณผ์ •์ด๋‹ค. 

 

Encryption ์˜ˆ

 

const shiftBy = function(content, offset) {
  return content.split('').map(function(letter) {
    return String.fromCharCode(letter.charCodeAt() + offset);
  }).join('');
}

shiftBy('apple',2) // ์ถœ๋ ฅ 'crrng'
shiftBy('crrng',-2) // ์ถœ๋ ฅ 'apple'

 

 


Hashing ์ด๋ž€?

์–ด๋– ํ•œ ๋ฌธ์ž์—ด์— '์ž„์˜์˜ ์—ฐ์‚ฐ'์„ ์ ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ

 

์ฒ ์น™!

1. ๋ชจ๋“  ๊ฐ’์— ๋Œ€ํ•ด ํ•ด์‹œ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋Š”๋ฐ ์˜ค๋ž˜๊ฑธ๋ฆฌ์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค. 

2. ์ตœ๋Œ€ํ•œ ํ•ด์‹œ ๊ฐ’์„ ํ”ผํ•ด์•ผ ํ•˜๋ฉฐ, ๋ชจ๋“  ๊ฐ’์€ ๊ณ ์œ ํ•œ ํ•ด์‹œ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค. 

3. ์•„์ฃผ ์ž‘์€ ๋‹จ์œ„์˜ ๋ณ€๊ฒฝ์ด๋ผ๋„ ์™„์ „ํžˆ ๋‹ค๋ฅธ ํ•ด์‹œ ๊ฐ’์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค. 

 

๋Œ€ํ‘œ์ ์ธ hashing ์•Œ๊ณ ๋ฆฌ์ฆ˜ - SHA1,  SHA256 ...

 


Salt ๋ž€?

์•”ํ˜ธํ™”ํ•ด์•ผ ํ•˜๋Š” ๊ฐ’์— ์–ด๋–ค '๋ณ„๋„์˜ ๊ฐ’'์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ณ€ํ˜•ํ•˜๋Š” ๊ฒƒ

 

1. ์•”ํ˜ธํ™”๋งŒ ํ•ด๋†“๋Š”๋‹ค๋ฉด ํ•ด์‹œ๋œ ๊ฒฐ๊ณผ๊ฐ€ ๋Š˜ ๋™์ผ

ํ•ด์‹œ๋œ ๊ฐ’๊ณผ ์›๋ž˜ ๊ฐ’์„ ํ…Œ์ด๋ธ”(๋ ˆ์ธ๋ณด์šฐ ํ…Œ์ด๋ธ”)๋กœ ๋งŒ๋“ค์–ด์„œ decoding ํ•ด๋ฒ„๋ฆฌ๋Š” ๊ฒฝ์šฐ๋„ ์ƒ๊ธด๋‹ค. 

 

2. ์›๋ณธ๊ฐ’์— ์ž„์˜๋กœ ์•ฝ์†๋œ '๋ณ„๋„์˜ ๋ฌธ์ž์—ด'์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•ด์‹œ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค๋ฉด ๊ธฐ์กด ํ•ด์‹œ๊ฐ’๊ณผ ์ „ํ˜€ ๋‹ค๋ฅธ ํ•ด์‹œ๊ฐ’์ด ๋ฐ˜ํ™˜๋˜์–ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋…ธ์ถœ๋˜๋”๋ผ๋„ ์›๋ณธ๊ฐ’์„ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์•ˆ์ „ ์žฅ์น˜

 

3. ๊ธฐ์กด : (์•”ํ˜ธํ™” ํ•˜๋ ค๋Š” ๊ฐ’) => (hash ๊ฐ’)

    Salt ์‚ฌ์šฉ : (์•”ํ˜ธํ™” ํ•˜๋ ค๋Š” ๊ฐ’) +(Salt ์šฉ ๊ฐ’) => (hash ๊ฐ’)

 

 

Salt ์‚ฌ์šฉ์‹œ ์ฃผ์˜์ 

  1. Salt๋Š” ์œ ์ €์™€ ํŒจ์Šค์›Œ๋“œ ๋ณ„๋กœ ์œ ์ผํ•œ ๊ฐ’์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค. 
  2. ์‚ฌ์šฉ์ž ๊ณ„์ •์„ ์ƒ์„ฑํ•  ๋•Œ์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์ž„์˜์˜ Salt๋ฅผ ์‚ฌ์šฉํ•ด์„œ hashing ํ•ด์•ผํ•œ๋‹ค.
  3. Salt๋Š” ์ ˆ๋Œ€ ์žฌ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค.
  4. Salt๋Š” DB์˜ ์œ ์ € ํ…Œ์ด๋ธ”์— ๊ฐ™์ด ์ €์žฅ๋˜์–ด์•ผ ํ•œ๋‹ค.  

 

์œ ์ €๋งˆ๋‹ค Salt๋ฅผ ๋‹ค๋ฅด๊ฒŒ ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋„ Salt๋ฅผ ๊ฐ์ž ๋‹ค๋ฅด๊ฒŒ ๊ฐ€์ง€๊ณ   ์žˆ์–ด์•ผ ํ•œ๋‹ค. 

 

 

๐Ÿ˜ƒ ์ž˜๋ชป๋œ ๊ฐœ๋… ์ „๋‹ฌ์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ €์˜ ์„ฑ์žฅ์— ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค๐Ÿค“