首页 > 代码库 > linux之md5库
linux之md5库
在使用md5函数之前要先安装openssl,以及libssl-dev。
包含头文件:#include <openssl/md5.h>
两种方式:
第一种:
int MD5_Init(MD5_CTX *c);
int MD5_Update(MD5_CTX *c, const void *data, size_t len);
int MD5_Final(unsigned char *md, MD5_CTX *c);
三个函数联合使用,适合文件校验。
第二种:
unsigned char *MD5(const unsigned char *d, unsigned long n,unsigned char *md);
适合密码加密。
例
文件校验
#include <openssl/md5.h> #include <iostream> #include <string.h> #include <stdlib.h> using namespace std; int main() { FILE *fd=fopen("tmp.txt","r"); MD5_CTX c; unsigned char md[16]; int len; char tmp[3]={'\0'}, md5buf[33]={'\0'}; unsigned char buffer [1024]={'\0'}; MD5_Init(&c); while( 0 != (len = fread(buffer, 1, 1024, fd) ) ) { MD5_Update(&c, buffer, len); } MD5_Final(md,&c); for(int i = 0; i < 16; i++) { sprintf(tmp,"%02X",md[i]); strcat(md5buf,tmp); } cout<<md5buf<<endl; fclose(fd); return 0; }
密码加密
#include <openssl/md5.h> #include <iostream> #include <string.h> #include <stdlib.h> using namespace std; int main() { string data = http://www.mamicode.com/"helloworld";>编译时指定库文件:-lcrypto
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。