linux C MD5计算

c 复制代码
#include <stdio.h>
#include <string.h>
#include <openssl/md5.h>

int main() {
    char str[] = "Hello, world!"; // 需要计算MD5哈希值的字符串

    unsigned char digest[MD5_DIGEST_LENGTH]; // 存储MD5哈希值的数组

    MD5((unsigned char*)&str, strlen(str), digest); // 计算MD5哈希值

    char md5string[33]; // 用于存储MD5哈希值的字符串(以十六进制表示)

    for (int i = 0; i < 16; i++) {
        sprintf(&md5string[i * 2], "%02x", (unsigned int)digest[i]); // 将每个字节的哈希值转换为两位的十六进制字符串
    }

    printf("MD5哈希值: %s\n", md5string);

    return 0;
}

在上述示例程序中,我们使用了OpenSSL库中的MD5函数来计算MD5哈希值。首先,我们声明一个字符数组,并存储需要计算MD5哈希值的字符串。然后,我们声明一个相同长度的unsigned char数组来存储计算后的哈希值。接下来,调用MD5函数来计算哈希值,并将结果存储在digest数组中。

最后,我们使用sprintf函数将每个字节的哈希值转换为两位的十六进制字符串,并将结果存储在md5string字符串中。最终,我们通过printf函数将计算得到的MD5哈希值打印出来。

请注意,上述示例程序需要使用OpenSSL库,因此在编译时需要链接到该库。可以使用以下命令来编译:

c 复制代码
gcc program.c -o program -lssl -lcrypto

执行编译后的可执行文件,将会输出计算得到的MD5哈希值。

请记住,在实际应用中,必须采取适当的安全措施来确保字符串或数据的完整性和保密性,并使用更复杂的哈希算法来解决安全问题。此处的示例仅用于展示MD5哈希值的计算过程。

相关推荐
Nick.Q2 小时前
vim插件的管理与离线安装
linux·编辑器·vim
鑫—萍2 小时前
嵌入式开发学习——STM32单片机入门教程
c语言·驱动开发·stm32·单片机·嵌入式硬件·学习·硬件工程
LYS_06182 小时前
RM赛事C型板九轴IMU解算(4)(卡尔曼滤波)
c语言·开发语言·前端·卡尔曼滤波
头发还没掉光光4 小时前
HTTP协议从基础到实战全解析
linux·服务器·网络·c++·网络协议·http
小白同学_C4 小时前
Lab2-system calls && MIT6.1810操作系统工程【持续更新】
linux·c/c++·操作系统os
物理与数学4 小时前
linux内核 struct super_block
linux·linux内核
Getgit4 小时前
Linux 下查看 DNS 配置信息的常用命令详解
linux·运维·服务器·面试·maven
zhangrelay5 小时前
Linux(ubuntu)如何锁定cpu频率工作在最低能耗模式下
linux·笔记·学习
_OP_CHEN5 小时前
【Linux系统编程】(二十)揭秘 Linux 文件描述符:从底层原理到实战应用,一篇吃透 fd 本质!
linux·后端·操作系统·c/c++·重定向·文件描述符·linux文件
chem41116 小时前
玩客云 边缘AI模型 本地搭建部署 llama.cpp qwen
linux·人工智能·llama