如何从C [duplicate]中的fread()打印出值

问题描述 投票:-1回答:1

此问题已经在这里有了答案:

我有一个给定的简单代码段,该代码段应生成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);
}

更具体地说:说明说:“打印数字。”

c printf fread
1个回答
0
投票

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

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

0
投票

二进制数据“人类可读”的最常用表示方法是使用十六进制,其中每个数字代表4位。

for( int b = 0; b < len; b++ ) 
{
    printf( "%2.2X ", (int)key[b] ) ;
}
© www.soinside.com 2019 - 2024. All rights reserved.