C语言字符串中的MD5加密实现

发布时间:2024-08-30 14:49:44 作者:小樊
来源:亿速云 阅读:130

在C语言中,实现MD5加密通常需要使用第三方库,因为标准C库并没有提供MD5加密功能

#include<stdio.h>
#include<string.h>
#include <stdlib.h>
#include<openssl/md5.h>

char *md5_encrypt(const char *input) {
    unsigned char digest[MD5_DIGEST_LENGTH];
    MD5_CTX ctx;
    MD5_Init(&ctx);
    MD5_Update(&ctx, input, strlen(input));
    MD5_Final(digest, &ctx);

    char *output = (char *)malloc(sizeof(char) * (MD5_DIGEST_LENGTH * 2 + 1));
    for (int i = 0; i < MD5_DIGEST_LENGTH; i++) {
        sprintf(&output[i * 2], "%02x", (unsigned int)digest[i]);
    }
    output[MD5_DIGEST_LENGTH * 2] = '\0';

    return output;
}

int main() {
    const char *input = "Hello, world!";
    char *hash = md5_encrypt(input);
    printf("Original string: %s\n", input);
    printf("MD5 hash: %s\n", hash);

    free(hash);
    return 0;
}

这个示例代码首先包含了openssl/md5.h头文件,然后定义了一个名为md5_encrypt的函数,该函数接受一个字符串参数,并返回一个指向新分配的字符串的指针。这个新字符串包含了输入字符串的MD5哈希值。在main函数中,我们调用md5_encrypt函数并打印原始字符串和计算出的MD5哈希值。

注意:在编译此代码时,需要链接OpenSSL库。例如,在Linux系统上,可以使用以下命令进行编译:

gcc -o md5_example md5_example.c -lssl -lcrypto

这将生成一个名为md5_example的可执行文件,你可以运行它来查看MD5加密的结果。

推荐阅读:
  1. 如何理解C语言指针本质
  2. C语言指针是高效秘诀吗

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c语言

上一篇:C语言字符串中的Base64编码与解码

下一篇:C语言字符串中的正则表达式匹配

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》