Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 17.09.2016
Сообщений: 86

Присвоить время к сообщению

26.01.2017, 19:50. Показов 2193. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как присвоить дату к сообщению при нажатии button_Click ?
C#
1
2
3
4
5
private void button4_Click(object sender, EventArgs e) 
        {
            System.Diagnostics.Process.Start("md5.txt");
            textBox4.Text += "Открыт файл md5.txt" + Environment.NewLine;
        }
При нажатии кнопки буттон4_Клик выводит сообщение в текстБокс4.
Вот скрины кода и формы:
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.01.2017, 19:50
Ответы с готовыми решениями:

Присвоить время до конца события
Есть 2 таблицы text и date в бд load2 Как сделать чтобы в поле date заносилась в бд текущая дата + 3 дня добавить или часов. После...

TStringList - присвоить значения во время создания
Как можно присвоить значения TStringList во время создания?То есть, я создаю тип-запись, компонентами которого являются представители типа...

Как присвоить некоторое время в переменной?
как присвоить некоторое время в переменную.Я знаю,только как вывести теперешнее время Format(Time(), "hh:mm") И чтобы это...

28
26.01.2017, 21:30
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от petrolium Посмотреть сообщение
Подскажи пожалуйста какие два хеша из приведенной статьи дают одинаковый хеш
Два разных массива байтов
Кликните здесь для просмотра всего текста

D131DD02C5E6EEC4693D9A0698AFF95C2FCAB58712467EAB4004583EB8FB7F8955AD340609F4B302 83E488832571415A085125E8F7CDC99FD91DBDF280373C5BD8823E3156348F5BAE6DACD436C919C6 DD53E2B487DA03FD02396306D248CDA0E99F33420F577EE8 CE54B67080A80D1EC69821BCB6A8839396F9652B6FF72A70

D131DD02C5E6EEC4693D9A0698AFF95C2FCAB50712467EAB4004583EB8FB7F8955AD340609F4B302 83E4888325F1415A085125E8F7CDC99FD91DBD7280373C5BD8823E3156348F5BAE6DACD436C919C6 DD53E23487DA03FD02396306D248CDA0E99F33420F577EE8 CE54B67080280D1EC69821BCB6A8839396F965AB6FF72A70

Дают одинаковый хеш - 79054025255FB1A26E4BC422AEF54EB4

0
26.01.2017, 21:34

Не по теме:

Цитата Сообщение от OwenGlendower Посмотреть сообщение
Дают одинаковый хеш - 79054025255FB1A26E4BC422AEF54EB4
да нет же.
Верхний дает be13931ce95abcdcb86a19bc83f78a30
нижний дает d3db52299eff3abd386c66db689cf198
проверял здесь
http://www.md5.cz/
Может быть я как то не так проверяю?

0
26.01.2017, 21:38

Не по теме:

petrolium, ты вводил как строку. А это не строка, а массив байтов. Ищи сайт умеющий работать с байтами. Я проверял с помощью кода.

0
26.01.2017, 21:50

Не по теме:

Цитата Сообщение от OwenGlendower Посмотреть сообщение
petrolium, ты вводил как строку. А это не строка, а массив байтов. Ищи сайт умеющий работать с байтами. Я проверял с помощью кода.
ясно. но это не то.
хэш мд5 состоит из 32 символов, и имеет 16^32 комбинаций, а это значит что должно быть как минимум два слова с одинаковым хэшем, и одно из них состоящее из 32 символов 1-F.(но это не доказано, его все и ищут, и за это предлагается нормальные деньги).
Сейчас с полной уверенностью можно сказать лишь о взломе MySQL64.

0
26.01.2017, 22:10

Не по теме:

petrolium, ты просил коллизию - я тебе показал коллизию. Поиск особого случая коллизии это конечно интересно, но нам и так уже известно что MD5 не является безопасным алгоритмом хеширования.

0
0 / 0 / 1
Регистрация: 17.09.2016
Сообщений: 86
26.01.2017, 22:12  [ТС]
Нужно добавить progressBar на процесс хеширования. Нашел статью там был файл (приложен ниже "Alex-123") Эта программа скачивает что-то с интернета и там показывает процесс выполнения.

Мне нужно этот код перенести на мою программау (приложен ниже "md5_1")
Нужно добавить progressBar на кнопку button_Click.

Прога "Alex-123":


Добавить сюда прогесс бар:




md5_1.zip
Alex-123.zip
0
0 / 0 / 1
Регистрация: 17.09.2016
Сообщений: 86
26.01.2017, 22:27  [ТС]
Код "Alex-123":

Кликните здесь для просмотра всего текста
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
using System;
using System.Diagnostics;
using System.IO;
using System.Net;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Alex_123
{
    public partial class Form1 : Form
    {
        private TaskScheduler mContextUI;
        private CancellationTokenSource mCancellationToken;
        private Task mTaskDownload;
 
        public Form1()
        {
            InitializeComponent();
 
            this.mContextUI = TaskScheduler.FromCurrentSynchronizationContext();
            this.mCancellationToken = null;
            this.mTaskDownload = null;
        }
 
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            this.buttonStop.PerformClick();
        }
 
        private void buttonStart_Click(object sender, EventArgs e)
        {
            this.buttonStart.Enabled = false;
            this.buttonStop.Enabled = true;
 
            Uri uri = new Uri("ftp://mirror.yandex.ru/ubuntu/dists/trusty/Contents-i386.gz");
 
            string filename = Path.Combine(
                Path.GetDirectoryName(Application.ExecutablePath),
                Path.GetFileName(uri.LocalPath));
 
            this.mCancellationToken = new CancellationTokenSource();
            this.mTaskDownload = Task.Factory.StartNew(
                this.Download,
                new Tuple<CancellationToken, Uri, string>(this.mCancellationToken.Token, uri, filename),
                this.mCancellationToken.Token);
        }
 
        private void buttonStop_Click(object sender, EventArgs e)
        {
            Task task = this.mTaskDownload;
            CancellationTokenSource token = this.mCancellationToken;
 
            if (task != null && token != null)
            {
                try
                {
                    token.Cancel();
                    task.Wait();
                }
                catch (AggregateException)
                { }
                catch (Exception)
                { }
 
                this.mTaskDownload = null;
                this.mCancellationToken = null;
            }
        }
 
        private void Download(object o)
        {
            Tuple<CancellationToken, Uri, string> data = (Tuple<CancellationToken, Uri, string>)o;
            CancellationToken token = data.Item1;
            Uri uri = data.Item2;
            string filename = data.Item3;
 
            try
            {
                long size = this.GetFileSize(uri);
 
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uri);
 
                request.KeepAlive = true;
                request.UsePassive = true;
                request.UseBinary = true;
 
                request.Method = WebRequestMethods.Ftp.DownloadFile;
 
                using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())// Error here
                {
                    using (Stream responseStream = response.GetResponseStream())
                    {
                        using (FileStream destinationStream = new FileStream(filename, FileMode.Create, FileAccess.Write))
                        {
                            byte[] buffer = new byte[1024 * 16];
                            long readedTotal = 0;
 
                            Stopwatch watch = new Stopwatch();
                            watch.Start();
 
                            while (responseStream.CanRead && !token.IsCancellationRequested)
                            {
                                int readed = responseStream.Read(buffer, 0, buffer.Length);
                                destinationStream.Write(buffer, 0, readed);
 
                                readedTotal += readed;
 
                                Task.Factory.StartNew(() => this.DownloadProgress(readedTotal, size, watch.Elapsed), CancellationToken.None, TaskCreationOptions.None, this.mContextUI);
                            }
 
                            watch.Stop();
 
                            destinationStream.Flush();
                        }
                    }
 
                    response.Close();
                }
            }
            catch (Exception exc)
            {
            }
 
            Task.Factory.StartNew(this.DownloadCompleted, CancellationToken.None, TaskCreationOptions.None, this.mContextUI);
        }
 
        private void DownloadCompleted()
        {
            this.mTaskDownload = null;
            this.mCancellationToken = null;
            this.buttonStart.Enabled = true;
            this.buttonStop.Enabled = false;
        }
 
        private void DownloadProgress(long readed, long total, TimeSpan elapsed)
        {
            int percent = Convert.ToInt32((readed * 100) / total);
            this.labelProgress.Text = String.Format("Readed {0} from {1}\n{2}%\nElaped time: {3:hh\\:mm\\:ss}",
                readed,
                total,
                percent,
                elapsed);
            this.progressBar1.Value = percent;
        }
 
        private Int64 GetFileSize(Uri uri)
        {
            FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(uri);
            request.Method = WebRequestMethods.Ftp.GetFileSize;
 
            FtpWebResponse response = (FtpWebResponse)request.GetResponse();
            long size = response.ContentLength;
            response.Close();
 
            return size;
        }
 
        private void progressBar1_Click(object sender, EventArgs e)
        {
 
        }
    }
}


Мой код:
Кликните здесь для просмотра всего текста
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Windows.Forms;
using System.Security.Cryptography;
 
namespace WindowsFormsApplication5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
 
        private void button1_Click(object sender, EventArgs e)
        {
 
            StreamWriter write = new StreamWriter("md5_1.txt", true);
            for (int i = 0; i < 9999; i++)
            {
                write.WriteLine(GetMD5(i.ToString()));
            }
        }
        public string GetMD5(string text)
        {
            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
            md5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(text));
            byte[] result = md5.Hash;
            StringBuilder str = new StringBuilder();
            for (int i = 0; i < 9; i++)
            {
                str.Append(result[i].ToString("x2"));
            }
            return str.ToString();
        }
 
        private void progressBar1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void textBox2_TextChanged(object sender, EventArgs e)
        {
 
        }
    }
}
0
27.01.2017, 05:45

Не по теме:

Цитата Сообщение от OwenGlendower Посмотреть сообщение
petrolium, ты просил коллизию - я тебе показал коллизию. Поиск особого случая коллизии это конечно интересно, но нам и так уже известно что MD5 не является безопасным алгоритмом хеширования.
любой алгоритм хеширования не безопасен. Суть в том что если мы ограничим длину пароля 31 символом у нас гарантированно не будет коллизии, т.к. при длине 32 - коллизия найдется 100% любого 32 значного хеша.
На основе MySql64, например, хеш которого длиной 16 символов, было доказано что существует как минимум еще один пароль длиной до 16 символов имеющий одинаковый хэш с любым исходным. Поэтому он и считается сломанным.
А то что MD5 показали наличие коллизии, при том запредельным числом(массивом байт) с запредельным числом(массивом байт), не говорит о том что он скомпрометирован, т.к. изначально ТЗ по его работе были из реальных чисел, а говорит о том что ребята - хорошие математики

0
01.03.2017, 13:09

Не по теме:


Цитата Сообщение от petrolium Посмотреть сообщение
любой алгоритм хеширования не безопасен.
Похоже нам нужно договориться о терминах, иначе мы не поймем друг друга. MD5 небезопасен потому что а) есть алгоритмы подбора коллизий и б) хеши можно очень быстро считать. Подобное нельзя сказать про другие алгоритмы. Например, про SHA-2. Очевидно что у него должны быть коллизии, но раз алгоритм неизвестен, то возможность атаки остается теоритическокой. Поэтому SHA-2 безопасен. Что ты понимаешь под безопасностью алгоритмов хеширования?

Цитата Сообщение от petrolium Посмотреть сообщение
Суть в том что если мы ограничим длину пароля 31 символом у нас гарантированно не будет коллизии, т.к. при длине 32 - коллизия найдется 100% любого 32 значного хеша. На основе MySql64, например, хеш которого длиной 16 символов, было доказано что существует как минимум еще один пароль длиной до 16 символов имеющий одинаковый хэш с любым исходным. Поэтому он и считается сломанным.
Смотрю статью о подборе коллизий для MySQL64 и вижу там такой пример коллизии: MySQL64(король) = MySQL64(bXBKkEHxi,i) = 745d019f415d9513. По твоему утверждению ограничение длины пароля на единицу меньше длины хеша даст нам 100% защиту. Но на примере видно что это не так. Длина хеша - 16 символов, длина оригинального пароля - 6. Если считать что речь идет о байтах (хеши все таки с байтами работают), то тогда получается (но смотря о какой кодировке идет речь). В этом случае возникает другая проблема - слишком короткий пароль. Для MD5 это получается 16 байтов - 1 = 15 байтов - маловато для современных паролей. От коллизий мы возможно и защитимся, но зато откроем себя для bruteforce атак и атак по словарю.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.03.2017, 13:09
Помогаю со студенческими работами здесь

Присвоить переменной время, на секунду меньшее заданного
type time = record h {час}: 0..23; m {минута}, s {секунда}: 0..59 end; Описана процедура next(t, t1), присваивающая параметру t1 время,...

Как присвоить текущее время имени файла
Доброго времени суток! const AnsiString sDir = ExtractFilePath(Application-&gt;ExeName)+&quot;AUDIO\\&quot;; if (!DirectoryExists(sDir)) { ...

Присвоить текущую дату и время к имени файла в Матлабе
Привет всем ! Хочу присвоить &quot;дату и время &quot; к названию файла. Например: 26-Oct-2019_10:35:39_all_variables_main.mat Прописал вот...

Как присвоить каждому элементу матрицы 2х3 время в диапазоне от 7:00 до 19:00
Помогите пожалуйста написать программу.Опишите в программе двухмерный массив размерностью 2*3 элементов и присвойте значения каждому...

присвоение id сообщению
Здраствуйте. Нужна Ваша помощь. Не могу разобраться как присвоить id записи в бд База данных выглядит так: ...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru