SHA (Secure Hash Algorithm)
대표적인 해시 알고리즘으로 미국에서 개발되었다.
초기에 SHA-0으로 시작해서 SHA-1, SHA-256, SHA-224 등이 개발되었고,
SHA-1은 이 SHA함수들 중에서 가장 많이 쓰인다.
이 SHA 알고리즘은 보통 TLS/SSL등과 같은 보안 통신에서 메시지의 무결성을 검증하기 위해 사용되며,
비슷한 알고리즘으로 MD5가 있다.
또한 이 해시함수는 비밀번호와 같이 단방향으로 암호화 해야 할 경우에도 요긴하게 사용된다.
Openssl 라이브러리에서 이 SHA 알고리즘을 볼 수 있는데, 이 함수의 모습은 다음과 같다.
unsigned char *SHA(const unsigned char *d, size_t n, unsigned char *md);
또는
int SHA_Init(SHA_CTX *c);
int SHA_Update(SHA_CTX *c, const void *data, size_t len);
int SHA_Final(unsigned char *md, SHA_CTX *c);
간단하게 짜본 비밀번호 해싱 프로그램 (openssl 을 사용)
- openssl의 sha.h 파일 참조
- libcrypto.so 라이브러리 사용
- Openssl Version 1.0.0
#include <openssl/sha.h> char *passwd, *out; passwd = malloc(128); out = malloc(32); printf("input your PW : "); SHA256(passwd, strlen(passwd), out);
> gcc -o test test.c -lcrypto |
해시함수에 대한 자세한 내용은
'Information Security > Info.Security' 카테고리의 다른 글
Asterisk 1.6 - TLS 설정하기 (0) | 2012.04.16 |
---|---|
Openssl - Cipher 고르기 (0) | 2012.04.12 |
ARP & ARP Spoffing (0) | 2012.04.12 |
Information Classification (0) | 2012.04.12 |
The big three (0) | 2012.04.12 |