在 C 中打印哈希
Printing a hash in C
我试图在 C 中打印 SHA256 散列,但是当我使用如下所示的 for 循环时,打印散列的唯一方法是将换行符添加到 printf。理想情况下,我想将其全部打印在一行中。
void enclave_main()
{
char string[] = "Hello World";
int x;
unsigned char digest[SHA256_DIGEST_LENGTH];
SHA256_CTX sha256;
SHA256_Init(&sha256);
SHA256_Update(&sha256, string, strlen(string));
SHA256_Final(digest, &sha256);
for(x = 0; x < SHA256_DIGEST_LENGTH; x++)
printf("%02x\n", digest[x]);
sgx_exit(NULL);
}
标准输出(通常)是行缓冲的,这意味着在缓冲区已满之前不会将输出刷新到终端或您发送换行符 或 您使用 fflush()
手动刷新流。
最简单的做法是在循环后打印换行符:
for(x = 0; x < SHA256_DIGEST_LENGTH; x++)
printf("%02x", digest[x]);
putchar( '\n' );
我试图在 C 中打印 SHA256 散列,但是当我使用如下所示的 for 循环时,打印散列的唯一方法是将换行符添加到 printf。理想情况下,我想将其全部打印在一行中。
void enclave_main()
{
char string[] = "Hello World";
int x;
unsigned char digest[SHA256_DIGEST_LENGTH];
SHA256_CTX sha256;
SHA256_Init(&sha256);
SHA256_Update(&sha256, string, strlen(string));
SHA256_Final(digest, &sha256);
for(x = 0; x < SHA256_DIGEST_LENGTH; x++)
printf("%02x\n", digest[x]);
sgx_exit(NULL);
}
标准输出(通常)是行缓冲的,这意味着在缓冲区已满之前不会将输出刷新到终端或您发送换行符 或 您使用 fflush()
手动刷新流。
最简单的做法是在循环后打印换行符:
for(x = 0; x < SHA256_DIGEST_LENGTH; x++)
printf("%02x", digest[x]);
putchar( '\n' );