Asish6542165 Ответов: 2

Хэш RIPEMD160 на языке C


Я хочу закодировать программу на языке Си для выполнения хэша ripemd160 в массиве символов. Но я не могу понять, как мне это сделать. Может ли кто-нибудь предложить код на языке Си для выполнения следующих действий?

Что я уже пробовал:

Я наткнулся на эту функцию в OpenSSL, но не могу понять, как ее использовать
unsigned char *RIPEMD160(const unsigned char *d, unsigned long n,
                 unsigned char *md);

2 Ответов

Рейтинг:
16

OriginalGriff

Вы рассматривали возможность чтения документации: /docs/man1.0.2/man3/RIPEMD160.html[^] вообще?


CPallini

Черт Возьми! :-D

Asish6542165

что делает в нем 'unsigned long n'?

phil.o

RIPEMD160() вычисляет дайджест сообщения RIPEMD-160 из н байт в d и помещает его в md (который должен иметь место для RIPEMD160_DIGEST_LENGTH == 20 байт вывода). Если МД является недействительным, сборник находится в статическом массиве.

OriginalGriff

Чтение документации здесь явно не самый сильный набор ... :вздыхать:

Richard MacCutchan

Требор делает сильные сюиты. :)

OriginalGriff

Иногда очень сильный!

Рейтинг:
10

CPallini

Что о документация[^]?


Похоже вы не знакомы с этим documentese (вы должны исправить это как можно скорее).

пробовать

const char mystr = "My Beautiful String"; // first parameter is the input string
unsigned long len = strlen( mystr ); // 2nd parameter is the length of the input string
unsigned char myhash[20]; // 3rd parameter is the (output) hash array
RIPEMD160( (const unsigned char *)mystr, len, myhash);


Asish6542165

не могли бы вы объяснить мне параметры этой функции

"без знака char *RIPEMD160(константный беззнаковый тип char *д, неподписанные долго Н,
unsigned char *md);"

CPallini

Смотрите мое обновленное решение.