• linux C MD5计算


    #include 
    #include 
    #include 
    
    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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

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

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

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

    gcc program.c -o program -lssl -lcrypto
    
    • 1

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

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

  • 相关阅读:
    一个注解解决ShardingJdbc不支持复杂SQL
    Redis(十) - Redission原理与实践
    字符编码
    钉钉小程序 访问ip不在白名单之中
    jupyter中配置多种虚拟环境
    海艺互娱与亚马逊云科技合作,在生成式AI领域探索更多的训练方向
    如何搭建VUE项目开发环境?
    LeetCode //C - 190. Reverse Bits
    走进音视频的世界——Opus编解码协议
    leetcode算法题--数值的整数次方
  • 原文地址:https://blog.csdn.net/weixin_38849487/article/details/132759173