HMAC和MD5:
- HMAC的使用:
其中第一个参数指定HMAC中所使用的具体的散列算法,在这里我们使用sha1(输出是160bit),因此在调用时第一个参数应为EVP_sha1()。key和key_len顾名思义分别是密钥存储的首地址和密钥的字节数目。d和n分别指定了被散列的数据的起始地址和字节数目。md表示散列后的结果存放的目标地址,md_len指向的int被用来记录md的字节数目(在这里是160bit即20个字节)。#include <openssl/hmac.h> unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len, const unsigned char *d, int n, unsigned char *md, unsigned int *md_len);
- MD5的使用:
d和n分别指定了被散列的数据的起始地址和字节数目。md存放散列结果(128bit即16个字节)。#include <openssl/md5.h> unsigned char *MD5(const unsigned char *d, unsigned long n, unsigned char *md);
对称加密算法的使用(EVP通用加密接口):
- 函数原型说明见http://www.openssl.org/docs/crypto/EVP_EncryptInit.html#
- 示例代码: