📜  bash md5sum string - C 编程语言(1)

📅  最后修改于: 2023-12-03 15:13:36.819000             🧑  作者: Mango

Bash下使用md5sum计算字符串的MD5值

在编程和加密中,MD5是一种常见的散列函数,用于计算数据的哈希值。Bash shell可以使用md5sum命令对字符串进行哈希,并输出其MD5值。本文将介绍如何使用Bash shell和C语言计算字符串的MD5值。

Bash shell

Bash shell的md5sum命令使用标准输入,输出字符串的MD5值。以下是一个用法示例:

echo -n "Hello, world!" | md5sum

输出结果为:

b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9  -

其中,b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9就是字符串“Hello, world!”的MD5值。

C语言

在C语言中,md5sum可以使用第三方库进行计算。mhash是一个开源C语言库,用于计算许多散列函数,包括MD5。

以下是使用mhash库计算字符串的MD5值的示例代码:

#include <stdio.h>
#include <mhash.h>

int main()
{
    char str[] = "Hello, world!";
    unsigned char hash[16];
    
    MHASH my_hash = mhash_init(MHASH_MD5);
    mhash(my_hash, str, sizeof(str) - 1);
    mhash_deinit(my_hash, hash);
    
    for (int i = 0; i < 16; i++)
        printf("%02x", hash[i]);
    
    return 0;
}

输出结果为:

b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
Markdown代码片段
Bash shell
    echo -n "Hello, world!" | md5sum
C语言
    #include <stdio.h>
    #include <mhash.h>

    int main()
    {
        char str[] = "Hello, world!";
        unsigned char hash[16];

        MHASH my_hash = mhash_init(MHASH_MD5);
        mhash(my_hash, str, sizeof(str) - 1);
        mhash_deinit(my_hash, hash);

        for (int i = 0; i < 16; i++)
            printf("%02x", hash[i]);

        return 0;
    }