我正在尝试将MD5哈希的结果打印到控制台,它在大多数情况下都有效。为了确保正确性,我使用在线MD5计算器来比较结果。大多数角色是相同的,但是我的一些角色缺失了,它们都是领先的零。
让我解释一下。结果是一个16字节的无符号char *。我逐个打印这些字节。每个字节在屏幕上打印两个字符。但是,如果两个中的第一个字符为零,则不会打印零。
printk("%x", result);
结果是unsigned char *类型。我是否正确格式化或者我遗失了什么?
答案 0 :(得分:90)
使用"%02x"
。
这两个意味着你总是希望输出为两个字符宽。
零意味着是否需要填充,使用零而不是空格。
答案 1 :(得分:3)
result
是一个指针,使用循环打印所有数字:
int i;
for (i = 0; i < 16; i++) {
printf("%02x", result[i]);
}