У меня есть функция c, которая возвращает массив без знака
unsigned char var[]="600ffe422b4e00731a59557a5cca46cc183944191006324a447bdb2d98d4b408";
массив char содержит шестнадцатеричную строку. Я хочу, чтобы sh этот массив символов, использующий функцию sha256
unsigned char *d = SHA256(var, strlen(var),0);
, купил его, чтобы он выдавал неправильный вывод, если только я вручную не закодировал его таким образом
unsigned char var[] = {0x60,0x0f,0xfe,0x42,0x2b,0x4e,0x00,0x73,0x1a,0x59,0x55,0x7a,0x5c,0xca,0x46,0xcc,0x18,0x39,0x44,0x19,0x10,0x06,0x32,0x4a,0x44,0x7b,0xdb,0x2d,0x98,0xd4,0xb4,0x08};
Что я попробовал:
#include <stdio.h>
#include <string.h>
#include <openssl/sha.h>
#include <openssl/ripemd.h>
int main (void) {
unsigned char var[] = {0x60,0x0f,0xfe,0x42,0x2b,0x4e,0x00,0x73,0x1a,0x59,0x55,0x7a,0x5c,0xca,0x46,0xcc,0x18,0x39,0x44,0x19,0x10,0x06,0x32,0x4a,0x44,0x7b,0xdb,0x2d,0x98,0xd4,0xb4,0x08}
unsigned char *d = SHA256(var, strlen(var), 0);
int i;
for (i = 0; i < SHA256_DIGEST_LENGTH; i++)
printf("%02x", d[i]);
putchar('\n');
как программно преобразовать этот
unsigned char var[]="600ffe422b4e00731a59557a5cca46cc183944191006324a447bdb2d98d4b408";
в этот
unsigned char var[]{0x60,0x0f,0xfe,0x42,0x2b,0x4e,0x00,0x73,0x1a,0x59,0x55,0x7a,0x5c,0xca,0x46,0xcc,0x18,0x39,0x44,0x19,0x10,0x06,0x32,0x4a,0x44,0x7b,0xdb,0x2d,0x98,0xd4,0xb4,0x08}
на c языке и затем передать его функции sha256