如何在 C 中打印出 fread() 的值

How to print out values from fread() in C

我有一个给定的简单代码片段,它应该生成一个 128 位加密密钥。如何将值打印到控制台? 这是代码:

#include <stdio.h>
#include <stdlib.h>

#define LEN 16 // 128 bits

void main()
{
    unsigned char *key = (unsigned char *) malloc(sizeof(unsigned char)*LEN);
    FILE* random = fopen("/dev/urandom", "r");
    fread(key, sizeof(unsigned char)*LEN, 1, random);
    fclose(random);
}

更具体地说:说明说:"Print out the numbers."

生成人类可读的二进制数据通常会涉及 hex 或 base64。假设十六进制代码是可以接受的:

for (int i=0 ; i<LEN ; i++ ) {
   printf("%02x", key[i]) ;
} ;
printf("\n") ;

最常用的"human readable"二进制数据表示方法是使用十六进制,其中每个数字代表4位。

for( int b = 0; b < len; b++ ) 
{
    printf( "%2.2X ", (int)key[b] ) ;
}