Как сделать хэш строки (sha256 и/или sha512) на Си? Т.е. желательно либо отдельный(е) файл(ы) с кодом необходимых функций, либо как это можно сделать с использованием сторонних библиотек типо NaCl или OpenSSL. Что бы можно было хэшировать строки (а точнее, char *) и получать хэш в том же виде
Для вычисления хеш-значения строки (SHA256 или SHA512) на языке C можно использовать библиотеку OpenSSL. Ниже приведен пример кода, который демонстрирует, как можно вычислить SHA256 хеш для строки.
Данный код использует функции из библиотеки OpenSSL для вычисления SHA256 хеш-значения строки. В строке, которую необходимо хешировать, пишется строка Hello, World!, но ее можно заменить на нужную строку. Хешированная строка зависит от входных данных, что обеспечивает уникальность и запрещает дублирование кодов.
Для вычисления хеш-значения строки (SHA256 или SHA512) на языке C можно использовать библиотеку OpenSSL. Ниже приведен пример кода, который демонстрирует, как можно вычислить SHA256 хеш для строки.
#include <stdio.h>#include <string.h>
#include <openssl/sha.h>
void sha256(const char *input, char outputBuffer[65]) {
unsigned char hash[SHA256_DIGEST_LENGTH];
SHA256_CTX sha256;
SHA256_Init(&sha256);
SHA256_Update(&sha256, input, strlen(input));
SHA256_Final(hash, &sha256);
for(int i = 0; i < SHA256_DIGEST_LENGTH; i++)
sprintf(outputBuffer + (i * 2), "%02x", hash[i]);
outputBuffer[64] = 0;
}
int main() {
char input[] = "Hello, World!";
char output[65];
sha256(input, output);
printf("SHA256 hash of \"%s\" is: %s\n", input, output);
return 0;
}
Данный код использует функции из библиотеки OpenSSL для вычисления SHA256 хеш-значения строки. В строке, которую необходимо хешировать, пишется строка Hello, World!, но ее можно заменить на нужную строку. Хешированная строка зависит от входных данных, что обеспечивает уникальность и запрещает дублирование кодов.