📅  最后修改于: 2023-12-03 15:13:36.819000             🧑  作者: Mango
在编程和加密中,MD5是一种常见的散列函数,用于计算数据的哈希值。Bash shell可以使用md5sum命令对字符串进行哈希,并输出其MD5值。本文将介绍如何使用Bash shell和C语言计算字符串的MD5值。
Bash shell的md5sum命令使用标准输入,输出字符串的MD5值。以下是一个用法示例:
echo -n "Hello, world!" | md5sum
输出结果为:
b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9 -
其中,b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
就是字符串“Hello, world!”的MD5值。
在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
echo -n "Hello, world!" | md5sum
#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;
}