opensslmd5算法源码c++版
2016-07-03 20:37
381 查看
#include "stdafx.h" #include <iostream> #include <string> #include <vector> #include <cstdio> #include <iomanip> #include <stdlib.h> #include <openssl/md5.h> #include "cryptotest.h" using namespace std; // C++STL库 string MD5_Digest(const string cleartext) { string strDigest; // 密文 unsigned char tmp[16] = {0}; //声明tmp[] MD5((const unsigned char*)cleartext.c_str(), cleartext.length(), tmp); //补位填充 //cleartext.c_str():c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同 MD5_CTX c; //MD5_CTX结构体指针 MD5_Init(&c); //初始化MD5_CTX MD5_Update(&c, cleartext.c_str(), cleartext.length()); //进行hash MD5_Final(tmp, &c); //tmp是当前加密结果,放置结果 char* tmp1 = new char[32 + 1]; //声明tmp1[] memset(tmp1, 0, 32 + 1); for(int i = 0; i < 16; i++) sprintf(&(tmp1[i*2]), "%02x", tmp[i]); strDigest = (char*)tmp1; //密文就是tmp1 delete [] tmp1; return strDigest; //返回32位密文 }
相关文章推荐
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- C#递归算法之分而治之策略
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- C#算法之大牛生小牛的问题高效解决方法
- C#算法函数:获取一个字符串中的最大长度的数字
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- asp MD5加密方式使用建议
- 经典排序算法之冒泡排序(Bubble sort)代码
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C语言压缩文件和用MD5算法校验文件完整性的实例教程
- C++实现一维向量旋转算法