OldHawk

菜地一块,欢迎拍砖
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Linux C 下使用openssl 进行SHA1加密

Posted on 2007-05-11 18:03  OldHawk  阅读(6393)  评论(1编辑  收藏  举报
How to replace hash functions from openssl with gcrypt. I wondered how to do it, and hacked around. git source uses ssl, and I wanted that to change.
/*
 Code snippet to calculate SHA1sum using openssl libs.
 Copyright 2005 Junichi Uekawa, given to public domain.

$ gcc openssltest.c -lssl
$ ./a.out  < ./a.out
eae8189278303caaa78f2d89e6a6ebeb7d37b554
$ sha1sum ./a.out
eae8189278303caaa78f2d89e6a6ebeb7d37b554  ./a.out
*/

#include 
<stdio.h>
#include 
<openssl/sha.h>

main ()
{
  SHA_CTX s;
  
int i, size;
  
char c[512];
  unsigned 
char hash[20];
  
  SHA1_Init(
&s);
  
while ((size=read (0, c, 512)) > 0)
    SHA1_Update(
&s, c, size);
  SHA1_Final(hash, 
&s);
  
  
for (i=0; i < 20; i++)
    printf (
"%.2x", (int)hash[i]);
  printf (
"\n");
}