转载:http://blog.csdn.net/stpeace/article/details/41922115

openssl的库的用法, 前面已经介绍了, 所以不再啰嗦, 直接给出代码:

[cpp] view plaincopy
  1. // openssl的库的用法, 前面已经介绍了, 所以不再啰嗦, 直接给出代码
  2. #include <iostream>
  3. #include <openssl/evp.h>
  4. #pragma comment(lib, "libeay32.lib")
  5. #pragma comment(lib, "ssleay32.lib") // 可以注释掉
  6. using namespace std;
  7. int main()
  8. {
  9. char digestType[][20] =
  10. {
  11. "xxx", // 非法
  12. "md4",
  13. "md5",
  14. "sha1",
  15. "sha256",
  16. "sha384",
  17. "sha512",
  18. };
  19. int size = sizeof(digestType) / sizeof(digestType[0]);
  20. int i = 0;
  21. for(i = 0; i < size; i++)
  22. {
  23. EVP_MD_CTX mdctx;
  24. const EVP_MD *md = NULL;
  25. char str[] = "testOpenssl";
  26. unsigned char mdValue[EVP_MAX_MD_SIZE] = {0};
  27. unsigned int mdLen = 0;
  28. OpenSSL_add_all_digests();
  29. md = EVP_get_digestbyname(digestType[i]);
  30. if(!md) // 不支持的格式
  31. {
  32. printf("Unknown message digest %s\n", digestType[i]);
  33. continue;
  34. }
  35. EVP_MD_CTX_init(&mdctx);
  36. EVP_DigestInit_ex(&mdctx, md, NULL);
  37. EVP_DigestUpdate(&mdctx, str, strlen(str));
  38. EVP_DigestFinal_ex(&mdctx, mdValue, &mdLen);
  39. EVP_MD_CTX_cleanup(&mdctx);
  40. printf("%s is ",  digestType[i]);
  41. int j = 0;
  42. for(j = 0; j < mdLen; j++)
  43. {
  44. printf("%02X", mdValue[j]);
  45. }
  46. printf("\n");
  47. }
  48. return 0;
  49. }

结果为:

Unknown message digest xxx
md4 is 3F1DED43A61E531EB49771D7519741A6
md5 is BD9A9CAE3D300EC608C217658E20F934
sha1 is 842CC44DB178A7A73BDB2BCDB7386BCABD56A5CB
sha256 is DB22DB9C451E72D85ED9348A736A69A66451593598C2CABACC949C6E33D844DF
sha384 is 707F730102F9C512C53348BE2C0A80D5B5CB8C67CC7A4A4602E99710CD37466BC3ED4F076BA9B77428D1C2EC35A7F261
sha512 is DAE45250C34FCF0860D02F692B9FC79FEA7E6D82C342EB7C402C71959D1B8CABCFFBC61142FFA21344130E809F0AE87AA002C24DB3F1542BA8331A6E82743C7F

如何利用openssl来计算md4, md5, sha1, sha256, sha384, sha512等常用哈希值?相关推荐

  1. C++计算md5/sha1/sha256/sha384/sha512算法

    最近需要分析文件的特征唯一值需求,这几个哈希算法就非常有用了.特别记录一下! 算法需要openssl库的支持,如果你勤快也能把库里面依赖的代码抠出来.我就懒得的弄了.直接编译openssl库 下载op ...

  2. python3 hashlib加密库 md5 sha1 sha256 sha384 sha512 加盐

    简介: 用于加密相关的操作,代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法. 在python3中已经废弃了md5和sha模块,简单说 ...

  3. 哈希算法SHA1,SHA256,SHA384,SHA512

    HASH算法,sha系列的基本写完 sha1 ,见我之前的一篇博客 http://andydhu.blog.51cto.com/3337368/824735 sha256 #include<st ...

  4. 快速计算文件的MD5/SHA1/SHA256等校验值(Windows/Linux)

    从网络上下载文件,尤其是非常大的文件怎么确保文件准确无误呢? 通常网站提供文件时会同时提供该文件的校验值,如MD5,SHA1,SHA256等, 当文件下载完成后,计算它的校验值,如果和网站提供的一致, ...

  5. 使用Windows自带的工具计算文件的 MD5 SHA1 SHA256

    使用Windows自带的工具计算文件的 MD5 SHA1 SHA256 很多网站会提供下载文件的校验码信息,在下载文件之后,如何方便地计算MD5 SHA1 SHA256等校验和呢?之前我常用的工具是H ...

  6. android sha1校验工具,【原创实用】文件校验工具V1.2.1:支持MD5 SHA1 SHA256

    前言:这个程序其实我很早以前(大概上上周?)就已经完成了 但是没有发布,因为我还想不断打磨打磨. 先别走,结尾还有彩蛋 现如今相较第一个版本,已经进行如下改动: 解决clear之后后台线程依然未停止的 ...

  7. 利用openssl来计算sha1, sha224, sha256, sha384, sha512

    转载:http://blog.csdn.net/stpeace/article/details/42371079 利用openssl来计算sha1, sha224, sha256, sha384, s ...

  8. MD5 SHA1 SHA256 SHA512 SHA1WithRSA RSA 的区别

    转自:http://www.cnblogs.com/cxygg/p/9468653.html https://blog.csdn.net/hengshujiyi/article/details/459 ...

  9. Java数据加密(MD5,sha1,sha256)

    数据加密,是一门历史悠久的技术,指通过 加密算法和加密 密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文.它的核心是密码学.数据加密目前仍是 计算机系统对信息进行保护的一种最可靠 ...

最新文章

  1. 华为10年经验测试工程师,整理出来的python自动化测试实战
  2. opencv实现图像的拼接功能
  3. 【STM32】FreeRTOS资源(持续更新)
  4. ajax正则验证p标签显示,JQuery+Ajax实现唯一性验证、正则
  5. java quartz tomcat_Quartz Scheduler - 在Tomcat或应用程序jar中运行?
  6. 发明python的人是个天才_BBC纪录片《天才的发明 The Genius of Invention》全4集 英语中英字幕 720P高清纪录片...
  7. Android 最新原生定位折腾总结科普
  8. python tornado websocket_Python:Tornado 第三章:WebSocket概念及应用:第一节:WebSocket概念...
  9. Error in loadNamespace(name) : there is no package called ‘yaml’
  10. WPS检测到字体缺失Windows字体包方正字体库
  11. 项目管理(PMP)整体介绍
  12. pdf文件太大如何压缩变小一点?
  13. 飞翔到你希望的遥远的地方
  14. 简化函数调用之五 :Parameterize Method(令函数携带参数)
  15. Linux--文件操作
  16. CoAP协议及开源实现
  17. 学历真的是衡量一个人的首要条件吗?
  18. caffe 中的损失函数分析
  19. 3an推客CPC、CPM和CPS是什么意思?有什么区别
  20. Navicat for MySQL的1577错误解决

热门文章

  1. Bash : 索引数组
  2. Docker Dirty Cow逃逸
  3. Compass样式重置
  4. Liferay中使用portlet:resourceURL触发serveResource()方法调用的细节
  5. Server 2008 R2 AD RMS完整部署:AD部署篇
  6. 《我的成长》6月下2009年第7期(总第7期)
  7. 机器学习在本体中的应用研究文献综述
  8. 算法面试题汇总(更新中)
  9. 使用2to3.py 转换 python2.x 代码 到python3
  10. mysql 6.17_2020 6/17 mysql数据的增删改查