如何利用openssl来计算md4, md5, sha1, sha256, sha384, sha512等常用哈希值?
转载:http://blog.csdn.net/stpeace/article/details/41922115
openssl的库的用法, 前面已经介绍了, 所以不再啰嗦, 直接给出代码:
- // openssl的库的用法, 前面已经介绍了, 所以不再啰嗦, 直接给出代码
- #include <iostream>
- #include <openssl/evp.h>
- #pragma comment(lib, "libeay32.lib")
- #pragma comment(lib, "ssleay32.lib") // 可以注释掉
- using namespace std;
- int main()
- {
- char digestType[][20] =
- {
- "xxx", // 非法
- "md4",
- "md5",
- "sha1",
- "sha256",
- "sha384",
- "sha512",
- };
- int size = sizeof(digestType) / sizeof(digestType[0]);
- int i = 0;
- for(i = 0; i < size; i++)
- {
- EVP_MD_CTX mdctx;
- const EVP_MD *md = NULL;
- char str[] = "testOpenssl";
- unsigned char mdValue[EVP_MAX_MD_SIZE] = {0};
- unsigned int mdLen = 0;
- OpenSSL_add_all_digests();
- md = EVP_get_digestbyname(digestType[i]);
- if(!md) // 不支持的格式
- {
- printf("Unknown message digest %s\n", digestType[i]);
- continue;
- }
- EVP_MD_CTX_init(&mdctx);
- EVP_DigestInit_ex(&mdctx, md, NULL);
- EVP_DigestUpdate(&mdctx, str, strlen(str));
- EVP_DigestFinal_ex(&mdctx, mdValue, &mdLen);
- EVP_MD_CTX_cleanup(&mdctx);
- printf("%s is ", digestType[i]);
- int j = 0;
- for(j = 0; j < mdLen; j++)
- {
- printf("%02X", mdValue[j]);
- }
- printf("\n");
- }
- return 0;
- }
结果为:
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等常用哈希值?相关推荐
- C++计算md5/sha1/sha256/sha384/sha512算法
最近需要分析文件的特征唯一值需求,这几个哈希算法就非常有用了.特别记录一下! 算法需要openssl库的支持,如果你勤快也能把库里面依赖的代码抠出来.我就懒得的弄了.直接编译openssl库 下载op ...
- python3 hashlib加密库 md5 sha1 sha256 sha384 sha512 加盐
简介: 用于加密相关的操作,代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法. 在python3中已经废弃了md5和sha模块,简单说 ...
- 哈希算法SHA1,SHA256,SHA384,SHA512
HASH算法,sha系列的基本写完 sha1 ,见我之前的一篇博客 http://andydhu.blog.51cto.com/3337368/824735 sha256 #include<st ...
- 快速计算文件的MD5/SHA1/SHA256等校验值(Windows/Linux)
从网络上下载文件,尤其是非常大的文件怎么确保文件准确无误呢? 通常网站提供文件时会同时提供该文件的校验值,如MD5,SHA1,SHA256等, 当文件下载完成后,计算它的校验值,如果和网站提供的一致, ...
- 使用Windows自带的工具计算文件的 MD5 SHA1 SHA256
使用Windows自带的工具计算文件的 MD5 SHA1 SHA256 很多网站会提供下载文件的校验码信息,在下载文件之后,如何方便地计算MD5 SHA1 SHA256等校验和呢?之前我常用的工具是H ...
- android sha1校验工具,【原创实用】文件校验工具V1.2.1:支持MD5 SHA1 SHA256
前言:这个程序其实我很早以前(大概上上周?)就已经完成了 但是没有发布,因为我还想不断打磨打磨. 先别走,结尾还有彩蛋 现如今相较第一个版本,已经进行如下改动: 解决clear之后后台线程依然未停止的 ...
- 利用openssl来计算sha1, sha224, sha256, sha384, sha512
转载:http://blog.csdn.net/stpeace/article/details/42371079 利用openssl来计算sha1, sha224, sha256, sha384, s ...
- MD5 SHA1 SHA256 SHA512 SHA1WithRSA RSA 的区别
转自:http://www.cnblogs.com/cxygg/p/9468653.html https://blog.csdn.net/hengshujiyi/article/details/459 ...
- Java数据加密(MD5,sha1,sha256)
数据加密,是一门历史悠久的技术,指通过 加密算法和加密 密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文.它的核心是密码学.数据加密目前仍是 计算机系统对信息进行保护的一种最可靠 ...
最新文章
- 华为10年经验测试工程师,整理出来的python自动化测试实战
- opencv实现图像的拼接功能
- 【STM32】FreeRTOS资源(持续更新)
- ajax正则验证p标签显示,JQuery+Ajax实现唯一性验证、正则
- java quartz tomcat_Quartz Scheduler - 在Tomcat或应用程序jar中运行?
- 发明python的人是个天才_BBC纪录片《天才的发明 The Genius of Invention》全4集 英语中英字幕 720P高清纪录片...
- Android 最新原生定位折腾总结科普
- python tornado websocket_Python:Tornado 第三章:WebSocket概念及应用:第一节:WebSocket概念...
- Error in loadNamespace(name) : there is no package called ‘yaml’
- WPS检测到字体缺失Windows字体包方正字体库
- 项目管理(PMP)整体介绍
- pdf文件太大如何压缩变小一点?
- 飞翔到你希望的遥远的地方
- 简化函数调用之五 :Parameterize Method(令函数携带参数)
- Linux--文件操作
- CoAP协议及开源实现
- 学历真的是衡量一个人的首要条件吗?
- caffe 中的损失函数分析
- 3an推客CPC、CPM和CPS是什么意思?有什么区别
- Navicat for MySQL的1577错误解决
热门文章
- Bash : 索引数组
- Docker Dirty Cow逃逸
- Compass样式重置
- Liferay中使用portlet:resourceURL触发serveResource()方法调用的细节
- Server 2008 R2 AD RMS完整部署:AD部署篇
- 《我的成长》6月下2009年第7期(总第7期)
- 机器学习在本体中的应用研究文献综述
- 算法面试题汇总(更新中)
- 使用2to3.py 转换 python2.x 代码 到python3
- mysql 6.17_2020 6/17 mysql数据的增删改查