Use sha1

0 Reference 

http://blog.csdn.net/liuhong135541/article/details/8138525

http://blog.csdn.net/shahongzhou/article/details/6586303

http://blog.sina.com.cn/s/blog_4c451e0e0100zf2j.html

1 Install

sudo apt-get install openssl
udo apt-get install libssl-dev

you will find ./usr/include/openssl/sha.h 

and ./usr/lib/x86_64-linux-gnu/libcrypto.so

2 need link the libcrypto by using -lcrypto  in the gcc command.



OpenSSL—SHA1(信息摘要算法)

 

SHA1算法是對MD5算法的升級,計算結果爲20字節(160位),使用方法如下:

 (1)   int SHA_Init(SHA_CTX *c);

        // 初始化 SHA Contex, 成功返回1,失敗返回0

 (2)   int SHA_Update(SHA_CTX *c, const void *data, size_t len); 

        // 循環調用此函數,可以將不同的數據加在一起計算SHA1,成功返回1,失敗返回0

 (3)   int SHA_Final(unsigned char *md, SHA_CTX *c);

        // 輸出SHA1結果數據,成功返回1,失敗返回0

 (4)   unsigned char *SHA(const unsigned char *d, size_t n, unsigned char *md);

        // SHA_Init,SHA_Update,SHA_Final三個函數的組合,直接計算出SHA1的值

 (5)   void SHA_Transform(SHA_CTX *c, const unsigned char *data);

        // 內部函數,不需要調用

#include <openssl/sha.h>

 unsigned char *SHA1(const unsigned char *d, unsigned long n,
                  unsigned char *md);
 int SHA1_Init(SHA_CTX *c);
 int SHA1_Update(SHA_CTX *c, const void *data,
                  unsigned long len);
 int SHA1_Final(unsigned char *md, SHA_CTX *c);


SHA-1 (Secure Hash Algorithm) is a cryptographic hash function with a 160bit output.

SHA1() computes the SHA-1 message digest of the nbytes at d and places it in md (which must have space for SHA_DIGEST_LENGTH == 20 bytes of output). If md is NULL, the digest is placed in a static array.

The following functions may be used if the message is not completely storedin memory:

SHA1_Init() initializes a SHA_CTX structure.

SHA1_Update() can be called repeatedly with chunks of themessage to be hashed (len bytes at data).

SHA1_Final() places the message digest in md, which must have space for SHA_DIGEST_LENGTH == 20 bytes of output, anderases the SHA_CTX.

Applications should use the higher level functionsEVP_DigestInit(3)etc. instead of calling the hash functions directly.

The predecessor of SHA-1, SHA, is also implemented, but it should be usedonly when backward compatibility is required.



發佈了52 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章