Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/76: Рейтинг темы: голосов - 76, средняя оценка - 4.54
68 / 41 / 1
Регистрация: 14.05.2013
Сообщений: 383
1

Алгоритм хэширования MD5

19.07.2013, 22:23. Показов 14224. Ответов 30
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мне дали задачу.
Программа должна делать такое:
Юзер вводит цифры или буквы
Программа делает из них MD5 хэш (т.е. хэширует эти символы)

Так вот, я в интернете нашел примерный алгоритм MD5 хэширования, но толком не понял как это всё реализовывать))
Накатал такое:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <cstdlib>
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
 cout << "Enter text (no MD5, normal text): " << endl;
 cin >> x;
 cout << "This: " << x << endl;
 int hash(long int x){
 if (x%1000==0) return 1000;
 return (x % 1000);
}
 
 function hash(x:longint):longint;
 begin
 if (x mod 1000=0) {
 then hash:=1000 else
 hash:=x mod 1000;
 end;
}
}
Можете исправить мою ошибку?)
Ошибка:

Unterminated quoted string
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.07.2013, 22:23
Ответы с готовыми решениями:

Объясните алгоритм хэширования: ГОСТ Р 34.11-94
Доброго времени суток) Объясните, пожалуйста, алгоритм хэширования госта р 34.11-94) И очень...

Нужен пример хэширования
Здравствуйте! Ни как не могу понять хэширование,если не трудно, то напишите какие нибудь простейшие...

Показать элементарный пример хэширования слова
Не могли бы вы показать элементарный пример хэширования слова?

Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки )
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void lab...

30
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
20.07.2013, 11:36 21
Author24 — интернет-сервис помощи студентам
А ты искать пробовал?
http://www.vr-online.ru/conten... hagom-1581
http://www.zedwood.com/article... 5-function
http://nig.org.ua/2011/07/polu... dstvami-c/
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
20.07.2013, 11:40 22
RFC 1321
RFC 1321
0
68 / 41 / 1
Регистрация: 14.05.2013
Сообщений: 383
20.07.2013, 11:53  [ТС] 23
Да есть у меня гугл Просто найти не могу

Добавлено через 4 минуты
Блин, я просто с одним человеком общаюсь, так он сказал что это просто
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
20.07.2013, 12:06 24
Цитата Сообщение от Даниил1991 Посмотреть сообщение
так он сказал что это просто
Нет ничего сложного в том чтобы встроить код MD5 с свою программу, благо реализаций на Си полно в просторах интернета.
0
68 / 41 / 1
Регистрация: 14.05.2013
Сообщений: 383
20.07.2013, 12:09  [ТС] 25
Цитата Сообщение от lazybiz Посмотреть сообщение
Нет ничего сложного в том чтобы встроить код MD5 с свою программу, благо реализаций на Си полно в просторах интернета.
Ну лично мне, новичку, это сложновато)Ну скопипластить код любой может, а вот если бы я сам писал...
Да и из ваших ссылок я посмотрел одну, так там юзеру не дают вводить свои символы и числа, а хэшируется уже подобраное слово)
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
20.07.2013, 12:09 26
Из linux kernel 3.7.10:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <stdint.h>
 
#define F1(x, y, z) (z ^ (x & (y ^ z)))
#define F2(x, y, z) F1(z, x, y)
#define F3(x, y, z) (x ^ y ^ z)
#define F4(x, y, z) (y ^ (x | ~z))
 
#define MD5STEP(f, w, x, y, z, in, s) \
    (w += f(x, y, z) + in, w = (w<<s | w>>(32-s)) + x)
 
void md5_transform( uint32_t *hash, uint32_t const *in )
{
    uint32_t a, b, c, d;
 
    a = hash[0];
    b = hash[1];
    c = hash[2];
    d = hash[3];
 
    MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7);
    MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12);
    MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17);
    MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22);
    MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7);
    MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12);
    MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17);
    MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22);
    MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7);
    MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12);
    MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17);
    MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22);
    MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7);
    MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12);
    MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17);
    MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22);
 
    MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5);
    MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9);
    MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14);
    MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20);
    MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5);
    MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9);
    MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14);
    MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20);
    MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5);
    MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9);
    MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14);
    MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20);
    MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5);
    MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9);
    MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14);
    MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20);
 
    MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4);
    MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11);
    MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16);
    MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23);
    MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4);
    MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11);
    MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16);
    MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23);
    MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4);
    MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11);
    MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16);
    MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23);
    MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4);
    MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11);
    MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16);
    MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23);
 
    MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6);
    MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10);
    MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15);
    MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21);
    MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6);
    MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10);
    MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15);
    MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21);
    MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6);
    MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10);
    MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15);
    MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21);
    MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6);
    MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10);
    MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15);
    MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21);
 
    hash[0] += a;
    hash[1] += b;
    hash[2] += c;
    hash[3] += d;
}
1
68 / 41 / 1
Регистрация: 14.05.2013
Сообщений: 383
20.07.2013, 12:14  [ТС] 27
Это и есть алгоритм хэширования? А как из этого собрать программу которая будет хэшировать символы и числа? А то я не очень понимаю

Добавлено через 1 минуту
Вы извините, просто я пока что знаю только основы С++, так как ещё новичёк, и не всё понимаю
0
Belfegor
20.07.2013, 13:33
  #28

Не по теме:

Цитата Сообщение от Даниил1991 Посмотреть сообщение
А как из этого собрать программу
Цитата Сообщение от Даниил1991 Посмотреть сообщение
просто я пока что знаю только основы
ну вот и учи дальше.. че ты лезеть в хэширование

2
68 / 41 / 1
Регистрация: 14.05.2013
Сообщений: 383
20.07.2013, 14:21  [ТС] 29
Цитата Сообщение от Belfegor Посмотреть сообщение

Не по теме:



ну вот и учи дальше.. че ты лезеть в хэширование

Согласен с вами, но задание то выполнить нужно, а что мне остается? Ну ладно, что-то сам придумаю, всем спасибо!
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
20.07.2013, 14:25 30
Даниил1991, ну мы и так тебе уже все разжевали. Не решать же все за тебя!? Пора применять серое секретное оружие!
0
68 / 41 / 1
Регистрация: 14.05.2013
Сообщений: 383
20.07.2013, 14:35  [ТС] 31
Цитата Сообщение от lazybiz Посмотреть сообщение
Даниил1991, ну мы и так тебе уже все разжевали. Не решать же все за тебя!? Пора применять серое секретное оружие!
Ага, спасибо большое!
0
20.07.2013, 14:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.07.2013, 14:35
Помогаю со студенческими работами здесь

Собственная реализация хэширования MD5
Помогите с реализацией md5 на C# без использования System.Security.Cryptography. Гуглил, везде или...

Реализация алгоритма хэширования MD5
привет, пожалуста помогите написать програму какая шіфрует даные в формате MD5. Оч надо пожалуста..

Алгоритм хэширования eMule
Может кто подкинет ссылку на описание как реализована функция хэширования в eMule. Пытаюсь...

Алгоритм MD5
ребят как написать код чтобы он мог расшифровать любой мд5


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru