Форум программистов, компьютерный форум CyberForum.ru

С под Linux

Войти
Регистрация
Восстановить пароль
 
kolyanchi1
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 18
#1

Sha512 через OpenSSL на чистом С - C Linux

15.02.2017, 22:15. Просмотров 435. Ответов 11
Метки нет (Все метки)

Нужна функция sha512 написанная на чистом С. Программирую на Ubuntu. В интернете ничего не смог найти. Буду рад любой помощи)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2017, 22:15     Sha512 через OpenSSL на чистом С
Посмотрите здесь:

C (СИ) Литература для работы с серверами (сетью) на чистом Cи
C (СИ) Подскажыте как компилировать програмы на чистом си
Запись и чтение файла с выделением памяти на чистом C. C (СИ)
C (СИ) Как написать GUI интерфейс на чистом C?
Как писать в VB2012 на чистом C? C (СИ)
C (СИ) Зашифровать содержимое памяти в файл и наоборот, openssl
C (СИ) Написать сапера на чистом си
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Humanoid
Почетный модератор
9818 / 3816 / 162
Регистрация: 12.06.2008
Сообщений: 11,426
15.02.2017, 22:52     Sha512 через OpenSSL на чистом С #2
Можно использовать openssl. Или вам нужен именно код? Я когда-то хеш-функции копировал из исходников PHP. Но подредактировать всё равно придётся.
kolyanchi1
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 18
16.02.2017, 11:38  [ТС]     Sha512 через OpenSSL на чистом С #3
Можно с OpenSSL

Добавлено через 58 минут
Точнее мне и нужно с OpenSSL, забыл дописать
si1n3rd
18 / 18 / 4
Регистрация: 27.04.2016
Сообщений: 66
16.02.2017, 19:23     Sha512 через OpenSSL на чистом С #4
Encrypting SHA512 Example in c

Возможно, то что нужно.
Humanoid
Почетный модератор
9818 / 3816 / 162
Регистрация: 12.06.2008
Сообщений: 11,426
16.02.2017, 22:38     Sha512 через OpenSSL на чистом С #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ну тогда вооружайтесь описанием и просто пишите код. Например:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <openssl/sha.h>
 
int main(int argc, char *argv[])
{
    SHA512_CTX ctx;
    int res;
    unsigned char md[64];
 
    if (!SHA512_Init(&ctx))
        printf("Can not init\n");
    if (!SHA512_Update(&ctx, "Hello", 5))
        printf("Can not update\n");
    if (!SHA512_Final(md, &ctx))
        printf("Can not final\n");
 
    for (int i = 0; i < 64; i++)
        printf("%02x", md[i]);
    printf("\n");
 
    return 0;
}
При линковке нужно указывать -lcrypto
Например:
Bash
1
gcc a.c -std=c99 -lcrypto
kolyanchi1
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 18
02.03.2017, 19:07  [ТС]     Sha512 через OpenSSL на чистом С #6
Спасибо

Добавлено через 15 минут
Почему-то не хочет компилироваться командой "gcc sha.c -o sha -lcrypto"
Почему?

Добавлено через 1 час 11 минут
А как код будет выглядеть для SHA 256?
Humanoid
Почетный модератор
9818 / 3816 / 162
Регистрация: 12.06.2008
Сообщений: 11,426
02.03.2017, 23:34     Sha512 через OpenSSL на чистом С #7
Цитата Сообщение от kolyanchi1 Посмотреть сообщение
Почему-то не хочет компилироваться командой "gcc sha.c -o sha -lcrypto"
Почему?
Не знаю. Что пишет? crypto не может найти?
Или вы именно этот код один в один пытаетесь собрать? Тогда нужно указывать -std=c99 или объявить переменную i за пределами цикла:
C
1
2
int i;
for (i = 0......
Цитата Сообщение от kolyanchi1 Посмотреть сообщение
А как код будет выглядеть для SHA 256?
Возможно, это прозвучит очень неожиданно, но надо везде (в четырёх местах) 512 заменить 256
kolyanchi1
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 18
02.03.2017, 23:41  [ТС]     Sha512 через OpenSSL на чистом С #8
Уже сам догадался)
Буду так компилировать gcc a.c -std=c99 -lcrypto
Спасибо за помощь)
kolyanchi1
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 18
08.03.2017, 18:42  [ТС]     Sha512 через OpenSSL на чистом С #9
А как вычислить хэш текстового документа? В моём случае мне нужно вычислить хэш sha256 публичного ключа RSA
Humanoid
Почетный модератор
9818 / 3816 / 162
Регистрация: 12.06.2008
Сообщений: 11,426
09.03.2017, 01:11     Sha512 через OpenSSL на чистом С #10
Цитата Сообщение от kolyanchi1 Посмотреть сообщение
А как вычислить хэш текстового документа?
Читайте его блоками и делайте SHA256_Update для каждого блока. А в конце один раз SHA256_Finish.
kolyanchi1
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 18
09.03.2017, 18:05  [ТС]     Sha512 через OpenSSL на чистом С #11
Спасибо!
А не могли бы вы помочь вот с этой темой? Создать и проверить сертификаты через OpenSSL на чистом С
Хотя бы что-то, а то я в ступняке
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.03.2017, 23:05     Sha512 через OpenSSL на чистом С
Еще ссылки по теме:

Делают ли оконные программы на чистом си C (СИ)
C (СИ) Нужны ли геттеры/сеттеры в чистом си?
Клиент-серверный интерфейс на чистом си + winapi C (СИ)
Конечный автомат на чистом С C (СИ)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Humanoid
Почетный модератор
9818 / 3816 / 162
Регистрация: 12.06.2008
Сообщений: 11,426
09.03.2017, 23:05     Sha512 через OpenSSL на чистом С #12
Нет, про сертификаты и ключи практически ничего знаю.
Yandex
Объявления
09.03.2017, 23:05     Sha512 через OpenSSL на чистом С
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru