Hash를 이용하여 암호화하는 과정
평문을 암호화할순 있지만, 복호화는 불가능하다
데이터의 진위여부는 확인하고 싶으나, 본 데이터의 Privacy를 지키고 싶은 경우 사용
ex) Bcrypt-JWT (참고:인증(Authentication) & 인가(Authorization))
hash할 때, hash 값은 크기와 알고리즘에 따라 암호문의 결과가 완전 상이함
알고리즘분류 | 알고리즘명 | MD 길이 | 블록 길이 | 최대 메시지 길이 |
---|---|---|---|---|
MD5 | MD5 | 128bit | 512bit | 무한 |
RIPEMD | RIPEMD-160 | 160bit | 512bit | 2^64-1bit |
SHA-1 | SHA-1 | 160bit | 512bit | 2^64-1bit |
SHA-2 | SHA-224 | 224bit | 512bit | 2^64-1bit |
SHA-2 | SHA-256 | 256bit | 512bit | 2^64-1bit |
SHA-2 | SHA-384 | 384bit | 1024bit | 2^128-1bit |
SHA-2 | SHA-512 | 512bit | 1024bit | 2^128-1bit |
SHA-3 | SHA-2와 디자인이 달리짐 |
참고
| 알고리즘 | 해시값 크기 | 내부 상태 크기 | 블록 크기 | 길이 한계 | 워드 크기 | 과정수 | 사용되는 연산 | 충돌
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
| SHA-0 | 160 | 160 | 512 | 64 | 32 | 80 | +,and,or,xor,rotl | 발견됨 |
| SHA-1 | 160 | 160 | 512 | 64 | 32 | 80 | +,and,or,xor,rotl | 발견됨 |
| SHA-256/224 | 256/224 | 256 | 512 | 64 | 32 | 64 | +,and,or,xor,shr,rotr | - |
| SHA-512/384 | 512/384 | 512 | 1024 | 128 | 64 | 80 | +,and,or,xor,shr,rotr | - |
정리가 엄청 깔끔하시네요.
글 잘 읽었습니다. 감사합니다!