ここでは、作成したバイト列(バイナリ)のハッシュ値を表示する方法を考えてみよう。
#include <stdio.h>
#include <string.h>
#include <openssl/sha.h>
int main(int argc, char** argv) {
unsigned char hash[SHA_DIGEST_LENGTH];
unsigned char* b;
unsigned char* s = "string string string";
int i, dlen;
dlen = strlen(s);
if ((b = (unsigned char *)malloc(dlen)) == NULL) {
return (-1);
}
memcpy(b, s, dlen);
SHA1(b, dlen, hash);
printf("hash: ");
<strong>for(i = 0; i < SHA_DIGEST_LENGTH; i++) {
printf("%02X", *(hash + i));
}</strong>
printf("\n");
free(b);
}
上の内容を hashtest.c とかいう名前で保存して、
gcc -lssl hashtest.c
とコンパイルすればよい。コンパイルすると a.out というファイルができるから ./a.out [Enter キー] で実行してみよう。
ここでは、作成したバイト列(バイナリ)のハッシュ値を表示する方法を考えてみよう。
#include <stdio.h>
#include <string.h>
#include <openssl/sha.h>
int main(int argc, char** argv) {
unsigned char hash[SHA_DIGEST_LENGTH];
unsigned char* b;
unsigned char* s = "string string string";
int i, dlen;
dlen = strlen(s);
if ((b = (unsigned char *)malloc(dlen)) == NULL) {
return (-1);
}
memcpy(b, s, dlen);
SHA1(b, dlen, hash);
printf("hash: ");
<strong>for(i = 0; i < SHA_DIGEST_LENGTH; i++) {
printf("%02X", *(hash + i));
}</strong>
printf("\n");
free(b);
}
上の内容を hashtest.c とかいう名前で保存して、
gcc -lssl hashtest.c
とコンパイルすればよい。コンパイルすると a.out というファイルができるから ./a.out [Enter キー] で実行してみよう。