# define MD5_LONG unsigned int

# define MD5_CBLOCK      64
# define MD5_LBLOCK (MD5_CBLOCK/4)
# define MD5_DIGEST_LENGTH 16 typedef struct MD5state_st {
MD5_LONG A, B, C, D;
MD5_LONG Nl, Nh;
MD5_LONG data[MD5_LBLOCK];
unsigned int num;
} MD5_CTX; 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, size_t n, unsigned char *md);

举例

#include "openssl/md5.h"

int i = 0;
char *data = "hello";
unsigned char md[MD5_DIGEST_LENGTH] = {0};
MD5_CTX c; MD5_Init(&c);
MD5_Update(&c, data, strlen(data));
MD5_Final(md, &c); //MD5(data, strlen(data), md); //二选一 for(i = 0; i < MD5_DIGEST_LENGTH; i++)
{
printf("0x%02x ", md[i]);
}
printf("\n");
# gcc md5.c -lcrypto
# ./a.out
0x5d 0x41 0x40 0x2a 0xbc 0x4b 0x2a 0x76 0xb9 0x71 0x9d 0x91 0x10 0x17 0xc5 0x92

md5sum

用于生成和校验文件的md5值

-b:以二进制模式读入文件内容

-t:以文本模式读入文件内容

-c:根据已生成的md5值,对现存文件进行校验

最新文章

  1. 从史上八大MySQL事故中学到的经验
  2. Yii2 打印sql语句和批量插入数据
  3. VSS错误:The Sourcesafe Web service cannot be accessed at the specified address
  4. IIS的安装与配置详细图解教程。
  5. Sqrt(x) 牛顿迭代法
  6. symbol(s) not found for architecture i386
  7. Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds解
  8. php sprintf函数
  9. 夏令营讲课内容整理Day 1.
  10. 在SpringBoot中添加Logback日志处理
  11. 【CJOJ1644】【洛谷2758】编辑距离
  12. Shell 简单构建 Node web服务器
  13. 6.适配器模式(Adapter Pattern)
  14. 网站性能优化实战——从12.67s到1.06s的故事
  15. Python全栈开发-Day6-面向对象编程
  16. 11-DOM介绍
  17. DOM父节点、子节点例子
  18. PHP函数总结 (六)
  19. 4.2 event
  20. MongoDB ver 4 几个常用命令

热门文章

  1. 修改IDEAL 快捷键风格
  2. 深入理解 iptables 和 netfilter 架构
  3. pop动画库简单使用小记
  4. Ubuntu 18.04 上使用xrdp远程桌面连接
  5. WordPress自定义循环
  6. Class WriteGroupAttribute
  7. Burp_Suite_Pro_v1.7.*激活
  8. [Kevin英语情报局]那些年我们说过的中式英语
  9. HOG算法总结
  10. ffmpeg学习笔记-Linux下编译Android动态库