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

С под Linux

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

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

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

Нужна функция sha512 написанная на чистом С. Программирую на Ubuntu. В интернете ничего не смог найти. Буду рад любой помощи)
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Humanoid
Почетный модератор
9830 / 3828 / 163
Регистрация: 12.06.2008
Сообщений: 11,448
15.02.2017, 22:52     Sha512 через OpenSSL на чистом С #2
Можно использовать openssl. Или вам нужен именно код? Я когда-то хеш-функции копировал из исходников PHP. Но подредактировать всё равно придётся.
kolyanchi1
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 24
16.02.2017, 11:38  [ТС]     Sha512 через OpenSSL на чистом С #3
Можно с OpenSSL

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

Возможно, то что нужно.
Humanoid
Почетный модератор
9830 / 3828 / 163
Регистрация: 12.06.2008
Сообщений: 11,448
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
Сообщений: 24
02.03.2017, 19:07  [ТС]     Sha512 через OpenSSL на чистом С #6
Спасибо

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

Добавлено через 1 час 11 минут
А как код будет выглядеть для SHA 256?
Humanoid
Почетный модератор
9830 / 3828 / 163
Регистрация: 12.06.2008
Сообщений: 11,448
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
Сообщений: 24
02.03.2017, 23:41  [ТС]     Sha512 через OpenSSL на чистом С #8
Уже сам догадался)
Буду так компилировать gcc a.c -std=c99 -lcrypto
Спасибо за помощь)
kolyanchi1
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 24
08.03.2017, 18:42  [ТС]     Sha512 через OpenSSL на чистом С #9
А как вычислить хэш текстового документа? В моём случае мне нужно вычислить хэш sha256 публичного ключа RSA
Humanoid
Почетный модератор
9830 / 3828 / 163
Регистрация: 12.06.2008
Сообщений: 11,448
09.03.2017, 01:11     Sha512 через OpenSSL на чистом С #10
Цитата Сообщение от kolyanchi1 Посмотреть сообщение
А как вычислить хэш текстового документа?
Читайте его блоками и делайте SHA256_Update для каждого блока. А в конце один раз SHA256_Finish.
kolyanchi1
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 24
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 на чистом С
Еще ссылки по теме:
Linux Centos Sha512 хэш пароля
OpenSSl
C++ Qt Поддержка OpenSSL
Установка OpenSSL C++ Builder
Установка openssl Ubuntu Linux

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

Или воспользуйтесь поиском по форуму:
Humanoid
Почетный модератор
9830 / 3828 / 163
Регистрация: 12.06.2008
Сообщений: 11,448
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