设为首页 加入收藏

TOP

在OpenSSL 0.9.7c 下找不到 SHA512 算法
2014-11-24 08:29:42 来源: 作者: 【 】 浏览:1
Tags:OpenSSL 0.9.7c 不到 SHA512 算法

(假设 OpenSSL 头文件路径是 /yasi/code/openssl-1.0.1c/include,库文件路径是 /usr/lib64)


本文示例代码下载


具体下载目录在 /2013年资料/1月/21日/在OpenSSL 0.9.7c 下找不到 SHA512 算法


Build环境:


问题:


下面的代码在上述环境中build,使用OpenSSL 0.9.7c的库,build成功,但运行时出错。


#include
#include
#include



int main(int argc, char* argv[])
{
EVP_MD_CTX mdctx;
const EVP_MD *md;
char mess1[] = "Test Message\n";
char mess2[] = "Hello World\n";
unsigned char md_value[EVP_MAX_MD_SIZE];
unsigned int md_len;
int i;



OpenSSL_add_all_digests(); // even called this



if(!argv[1]) {
printf("Usage: mdtest digestname\n");
exit(1);
}



md = EVP_get_digestbyname(argv[1]); // still failed (md is 0x0 after this line) here when argv[1] is "sha512"



if(!md) {
printf("Unknown message digest %s\n", argv[1]);
exit(1);
}



EVP_MD_CTX_init(&mdctx);
EVP_DigestInit_ex(&mdctx, md, NULL);
EVP_DigestUpdate(&mdctx, mess1, strlen(mess1));
EVP_DigestUpdate(&mdctx, mess2, strlen(mess2));
EVP_DigestFinal_ex(&mdctx, md_value, &md_len);
EVP_MD_CTX_cleanup(&mdctx);



printf("Digest is: ");
for(i = 0; i < md_len; i++) printf("%02x", md_value[i]);
printf("\n");



return 0;
}


原因:


尝试了使用Openssl 0.9.8e 和 1.0.1c 两个版本,都没有出错。所以,使用Openssl 0.9.7c出错的原因很可能就是:Openssl 0.9.7c不支持SHA512算法。(注意,在0.9.7c下使用MD5是可以的)


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇CRC32 逆向算法的C语言实现 下一篇Python Socket通讯例子详解

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Redis on AWS:Elast (2025-12-27 04:19:30)
·在 Spring Boot 项目 (2025-12-27 04:19:27)
·使用华为开发者空间 (2025-12-27 04:19:24)
·Getting Started wit (2025-12-27 03:49:24)
·Ubuntu 上最好用的中 (2025-12-27 03:49:20)