此问题已经在这里有了答案:
我有一个给定的简单代码段,该代码段应生成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);
}
更具体地说:说明说:“打印数字。”
生成人类可读的二进制数据通常将涉及十六进制或base64。假设可接受十六进制代码:
for (int i=0 ; i<LEN ; i++ ) {
printf("%02x", key[i]) ;
} ;
printf("\n") ;
二进制数据“人类可读”的最常用表示方法是使用十六进制,其中每个数字代表4位。
for( int b = 0; b < len; b++ )
{
printf( "%2.2X ", (int)key[b] ) ;
}