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