해시함수 md5, sha256

해시함수 
고정된 길이의 해쉬값을 출력하는 함수

md5를 사용했을때의 결과는 다음과 같다.
  
입력값이 "1"일때
->  c4ca4238a0b923820dcc509a6f75849b

입력값이  "adbklakdjrlyjlkwejlgkjsrjitpjhopeeojlkajslkdjfkjaskdfjglkdsjflkhawkejrpy pasjglkajerlkjylkajsdlkfjlkasjdptggowrjytsjdllqqweqwe" 일때
-> cd274b08e463c7ef783bc659f8f8b6b2
입력값의 길이의상관없이 문자의 길이는 32자이다. 
(md5 테스트 : http://www.danstools.com/md5-hash-generator/ ) 


사용목적
보안을 위해
수신측이 입력값을 알지못해도
보내는 시점과 받는 시점의 해시값을 비교하고,
만약 그값이 동일하다면,
이값은 변조가 없었다. 라는 판단을 하는것이 목적
인증암호, 디지털서명 등에 사용한다.

md5나, sha256이나 대강 살펴보면
입력값이받아서
base64처럼 적당한 블록단위로 쪼개고,
부족한부분은 패딩으로 채운뒤에 
블록단위로 base64보다 훨씬 복잡하게 계산하는방식이다. 
그리고 그 복잡도에 따라 명칭이 다르며
안정성도 역시 다를것이다.

이제 md5는 쓰지 말란다.
이미 털렸다고.


알고리즘은 굉장히 복잡하지만, 
개발자가 갖다 쓰기에는 무척 간편하다.


Algorithm and variant Output size
(bits)
Internal state size
(bits)
Block size
(bits)
Max message size
(bits)
Rounds Operations Security
(bits)
Example Performance[31]
(MiB/s)
MD5 (as reference) 128 128
(4 × 32)
512 264 − 1 64 And, Xor, Rot,
Add (mod 232),
Or
<64
(collisions found)
335
SHA-0 160 160
(5 × 32)
512 264 − 1 80 And, Xor, Rot,
Add (mod 232),
Or
<80
(collisions found)
-
SHA-1 160 160
(5 × 32)
512 264 − 1 80 <80
(theoretical attack[32] in 261)
192
SHA-2 SHA-224
SHA-256
224
256
256
(8 × 32)
512 264 − 1 64 And, Xor, Rot,
Add (mod 232),
Or, Shr
112
128
139
SHA-384
SHA-512
SHA-512/224
SHA-512/256
384
512
224
256
512
(8 × 64)
1024 2128 − 1 80 And, Xor, Rot,
Add (mod 264),
Or, Shr
192
256
112
128
154
SHA-3 SHA3-224
SHA3-256
SHA3-384
SHA3-512
224
256
384
512
1600
(5 × 5 × 64)
1152
1088
832
576
Unlimited 24 And, Xor, Rot,
Not
112
128
192
256
-
SHAKE128
SHAKE256
d (arbitrary)
d (arbitrary)
1344
1088
min (d/2, 128)
min (d/2, 256)
-

댓글

  1. 작성자가 댓글을 삭제했습니다.

    답글삭제
  2. 님 감사한 자료입니다.
    질문이 있습니다.
    위에 입력값의 길이의상관없이 문자의 길이는 32자이다.
    라고 적혀있는데요.
    md5의 결과값은 128비트인데, 128비트는 16바이트이지 않습니깡?
    16바이트면 16글자여야 하는것 아닌가요?
    저도 "1"을 입력햇더니 님과 같은 32글자는 나오는데...
    이게 왜 16글자가 아니라 32글자가 나오는질 이해하고 싶은데 모르겠네요...

    답글삭제

댓글 쓰기

이 블로그의 인기 게시물

[spring] log4j 설정 및 사용법

[linux] 백그라운드 작업 nohup [xxx.sh] &

[spring] 인터셉터 와 필터