Use sha1

0 Reference 

http://blog.youkuaiyun.com/liuhong135541/article/details/8138525

http://blog.youkuaiyun.com/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.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值