С Новым годом! Форум программистов, компьютерный форум, киберфорум
Бета-тестирование
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
54 / 42 / 7
Регистрация: 08.04.2011
Сообщений: 227
1

CryptMe

12.08.2011, 12:17. Показов 1122. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Представляю вам программу для шифрования и дешифрования текстов методом BlowFish "CryptMe". Сделан
удобный GUI, генератор паролей и help. Выставляю на ваш суд.
Вложения
Тип файла: rar CryptMe.rar (16.6 Кб, 22 просмотров)
0
159 / 152 / 50
Регистрация: 03.08.2011
Сообщений: 299
Записей в блоге: 14
12.08.2011, 13:48 2
Текст на русском программа только шифрует, но назад не отдаёт. Как пример: Hello, mr. Иванов! My name is John Brown. -(12345)> 60c14dbc51d267eca4ea539837a8aa7af986a8d65d72366385901303cc8766f5be67155b7efacb80 18e5060cddb0b4b370df9b6b068c1676 -> Hello, mr. ??????! My name is John Brown.
0
54 / 42 / 7
Регистрация: 08.04.2011
Сообщений: 227
12.08.2011, 13:51  [ТС] 3
Почитайте help, там написано, что русский текст недоступен, т.к. шифрует методом BlowFish, который не знает русских символов.
0
159 / 152 / 50
Регистрация: 03.08.2011
Сообщений: 299
Записей в блоге: 14
12.08.2011, 14:01 4
Прочитал

Кстати,
1) почему все кнопки с русскими надписями, а Insert с английской
2) где находится подозрительная кнопка Donate (в справке о ней говорится, но в программе я её так и не нашёл)
0
54 / 42 / 7
Регистрация: 08.04.2011
Сообщений: 227
12.08.2011, 14:06  [ТС] 5
D:
1)Insert написал, потому что не вмещалось в кнопку, но исправлю
2)Donate я убрал, все-равно никто донатить не будет =(
0
54 / 42 / 7
Регистрация: 08.04.2011
Сообщений: 227
12.08.2011, 14:36  [ТС] 6
Исправил.
Вложения
Тип файла: rar CryptMe.rar (16.6 Кб, 20 просмотров)
1
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
12.08.2011, 15:20 7
Неудобняк, для запуска нужно установить .NET Framework.

Не по теме:

Качну, установлю, посмотрю

0
54 / 42 / 7
Регистрация: 08.04.2011
Сообщений: 227
12.08.2011, 15:38  [ТС] 8
Естественно, ведь это сишарп.
0
Заблокирован
12.08.2011, 21:57 9
Просмотрел только первый пункт справки, т.к. нужного фрэймворка нет, а читать все 6 пунктов лень.
1]Программа для шифрования и дешифрования текстов методом BlowFish CryptMe (далее просто CryptMe) является open-source проектом, позволяющим шифровать и дешифровать тексты на английском языке с сохранением форматирования строк. Для шифрования и дешифрования строк используется криптографический алгоритм BlowFish (далее просто BlowFish).
Вцелом формулировка мне не нравится(далее просто не нравится). Но, кроме того, где обещанный открытый исходный код(далее просто обещанный открытый исходный код)?
0
54 / 42 / 7
Регистрация: 08.04.2011
Сообщений: 227
12.08.2011, 21:59  [ТС] 10
Я хотел, чтобы вы сначала оценили...
1
CEO
Эксперт С++
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
12.08.2011, 22:06 11
rrrFer, это программа на .NET, она уже открыта, качаете/запускаете ildasm/Reflector - и радуетесь
1
Заблокирован
12.08.2011, 22:22 12
Цитата Сообщение от FanAs Посмотреть сообщение
Я хотел, чтобы вы сначала оценили...
я оценил то, что смог оценить, а именно, справку к программе, остальное у меня не запускается, а качать фрэймворк лень(тем более, у меня и так 4 версии фрэймворка установлены, сколько можно их качать уже? ))
по десятибальной шкале оцениваю справку на 3(далее, просто, "не нравится").

Я считаю что большее количество форумчан оценит ваше творение если оно будет работать под более низкой версией фрэймворка. Можно еще видеоролик сюда поместить или снимки окна программы, хотя бы.

Вот просмотрел всю справку целиком, и теперь она нравится мне еще меньше. Справка занимает меньше половины страницы текста(при этом содержит много ошибок). Не касаясь пунктуации и всяких тонкостей:
выбрать пукнт "шифровка"
чтобы расшифровать теккст
Цитата Сообщение от Alligieri Посмотреть сообщение
качаете/запускаете ildasm/Reflector - и радуетесь
Ну да, для оценки программы мне надо скачать "ildasm/Reflector"( это мне надо или ТС? )
0
CEO
Эксперт С++
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
12.08.2011, 22:27 13
Цитата Сообщение от rrrFer Посмотреть сообщение
это мне надо или ТС?
если вы хотите оценить программу в исходных кодах - это надо вам. Когда у вас игрушка не запускается и просит установить openGL230148305.dll - вы ее найдете в сети или будете сидеть и дуться "это надо не мне а EA". Думаю ЕА прибежит сразу и установит вам нужную библиотеку распостраненного движка
0
Заблокирован
12.08.2011, 22:46 14
Alligieri,

Не по теме:

выдайте себе карточку за оффтоп


игрушка заявляет что она open-source? Разработчики игрушки просят меня оценить их творение, или я сам хочу поиграть?

Если я куплю игрушку - то разработчик будет заинтересован, и , скорее всего, при обращении в техпоодержку они вышлют что мне надо, а не скажут что я должен скачать дизассемблер, дизамблировать и исправить.
Обратите внимание, что у NIch тоже нет нужного фрэймворка. И если ЕА(из вашего примера) выпустит игрушку, которая у многих не будет запускаться из-за отсутствия библиотеки - то скорее всего они будут распространять игру вместе с библиотекой.
Цитата Сообщение от Alligieri Посмотреть сообщение
если вы хотите оценить программу
И еще раз, это ТС хочет чтобы мы оценили его программу. Я тут вообще ничего не хочу, но могу помочь ему оценкой. И да, если заявлено что проект с открытым исходным кодом - то код должен быть открытым, и вот в этом случае, если у меня не запускается программа - то, возможно, я посмотрел бы исходный код(чтобы оценить, хотя бы, его).

Вы представьте ситуацию, что ваша любимая ЕА выпустила игру, просит ее оценить, игра требует библиотеки, которые не у всех есть. Заявлено open-source, а тех поддержка отвечает "если вы хотите оценить - то вот скачайте то-то, сделайте что-то и вот тогда ... увидите код" (странная ситуация, правда?)

Ну и вообще, когда я использую какую-то программу -то я являюсь пользователем, а ТС разместил свою программу на форум программистов(не на кулинарный форум, почему-то, а именно программистов) - поэтому вопрос об исходном коде open-source продукта кажется мне нормальным.
0
54 / 42 / 7
Регистрация: 08.04.2011
Сообщений: 227
12.08.2011, 23:04  [ТС] 15
rrrFer, во многих играх, в которые я играл отсутствовали необходимые библиотеки. Для запуска игр на Java тоже необходима Java, которую вместе с игрой не предоставляют. Держите исходник!
Вложения
Тип файла: rar CryptMe.rar (123.4 Кб, 15 просмотров)
0
54 / 42 / 7
Регистрация: 08.04.2011
Сообщений: 227
12.08.2011, 23:06  [ТС] 16
И да, тем не менее, в отличии от вас, NIch сказал, что качает, а вы говорите, что мне добавлять в 120-килобайтовое приложение фреймворк в 50?
0
Заблокирован
12.08.2011, 23:35 17
Цитата Сообщение от FanAs Посмотреть сообщение
а вы говорите, что мне добавлять в 120-килобайтовое приложение фреймворк в 50?
Читайте внимательней:
Цитата Сообщение от rrrFer Посмотреть сообщение
И если ЕА(из вашего примера) выпустит игрушку, которая у многих не будет запускаться из-за отсутствия библиотеки - то скорее всего они будут распространять игру вместе с библиотекой.
Я не рекомендовал вам, а сказал что у ЕА...(вряд-ли у них игрушка будет весит 120Кб). Видите-ли, уважаемый Alligieri пробует в качестве примера привести ЕА, а я говорю что ЕА тут не при чем, т.к. контора у них значительно больше вашей, продукты коммерческие, пользователи их покупают, а не оценивают, ну и ваще все иначе - пример с ЕА был не удачным.
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
            for (int i = 0; i < 256; i += 2)
            {
                encipher();
                bf_s0[i] = xl_par;
                bf_s0[i + 1] = xr_par;
            }
            for (int i = 0; i < 256; i += 2)
            {
                encipher();
                bf_s1[i] = xl_par;
                bf_s1[i + 1] = xr_par;
            }
            for (int i = 0; i < 256; i += 2)
            {
                encipher();
                bf_s2[i] = xl_par;
                bf_s2[i + 1] = xr_par;
            }
            for (int i = 0; i < 256; i += 2)
            {
                encipher();
                bf_s3[i] = xl_par;
                bf_s3[i + 1] = xr_par;
            }
Что-то мне тут не нравится, было бы симпатишней что-то вроде: (шарп не знаю, МБ где-то ошибся)
C++
1
2
3
4
5
6
for( int j = 0; j < 4; j ++ ) 
    for (int i = 0; i < 256; i += 2) {
        encipher();
        bf_s[j][i] = xl_par;
        bf_s[j][i + 1] = xr_par;
    }
суть в том, что надо бороться с копипастом.

Еще вот этот фрагмент кода мне явно не нравится:
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
private uint[] SetupS0()
        {
            return new uint[] {
                    0xd1310ba6,0x98dfb5ac,0x2ffd72db,0xd01adfb7,0xb8e1afed,0x6a267e96,
                    0xba7c9045,0xf12c7f99,0x24a19947,0xb3916cf7,0x0801f2e2,0x858efc16,
                    0x636920d8,0x71574e69,0xa458fea3,0xf4933d7e,0x0d95748f,0x728eb658,
                    0x718bcd58,0x82154aee,0x7b54a41d,0xc25a59b5,0x9c30d539,0x2af26013,
                    0xc5d1b023,0x286085f0,0xca417918,0xb8db38ef,0x8e79dcb0,0x603a180e,
                    0x6c9e0e8b,0xb01e8a3e,0xd71577c1,0xbd314b27,0x78af2fda,0x55605c60,
                    0xe65525f3,0xaa55ab94,0x57489862,0x63e81440,0x55ca396a,0x2aab10b6,
                    0xb4cc5c34,0x1141e8ce,0xa15486af,0x7c72e993,0xb3ee1411,0x636fbc2a,
                    0x2ba9c55d,0x741831f6,0xce5c3e16,0x9b87931e,0xafd6ba33,0x6c24cf5c,
                    0x7a325381,0x28958677,0x3b8f4898,0x6b4bb9af,0xc4bfe81b,0x66282193,
                    0x61d809cc,0xfb21a991,0x487cac60,0x5dec8032,0xef845d5d,0xe98575b1,
                    0xdc262302,0xeb651b88,0x23893e81,0xd396acc5,0x0f6d6ff3,0x83f44239,
                    0x2e0b4482,0xa4842004,0x69c8f04a,0x9e1f9b5e,0x21c66842,0xf6e96c9a,
                    0x670c9c61,0xabd388f0,0x6a51a0d2,0xd8542f68,0x960fa728,0xab5133a3,
                    0x6eef0b6c,0x137a3be4,0xba3bf050,0x7efb2a98,0xa1f1651d,0x39af0176,
                    0x66ca593e,0x82430e88,0x8cee8619,0x456f9fb4,0x7d84a5c3,0x3b8b5ebe,
                    0xe06f75d8,0x85c12073,0x401a449f,0x56c16aa6,0x4ed3aa62,0x363f7706,
                    0x1bfedf72,0x429b023d,0x37d0d724,0xd00a1248,0xdb0fead3,0x49f1c09b,
                    0x075372c9,0x80991b7b,0x25d479d8,0xf6e8def7,0xe3fe501a,0xb6794c3b,
                    0x976ce0bd,0x04c006ba,0xc1a94fb6,0x409f60c4,0x5e5c9ec2,0x196a2463,
                    0x68fb6faf,0x3e6c53b5,0x1339b2eb,0x3b52ec6f,0x6dfc511f,0x9b30952c,
                    0xcc814544,0xaf5ebd09,0xbee3d004,0xde334afd,0x660f2807,0x192e4bb3,
                    0xc0cba857,0x45c8740f,0xd20b5f39,0xb9d3fbdb,0x5579c0bd,0x1a60320a,
                    0xd6a100c6,0x402c7279,0x679f25fe,0xfb1fa3cc,0x8ea5e9f8,0xdb3222f8,
                    0x3c7516df,0xfd616b15,0x2f501ec8,0xad0552ab,0x323db5fa,0xfd238760,
                    0x53317b48,0x3e00df82,0x9e5c57bb,0xca6f8ca0,0x1a87562e,0xdf1769db,
                    0xd542a8f6,0x287effc3,0xac6732c6,0x8c4f5573,0x695b27b0,0xbbca58c8,
                    0xe1ffa35d,0xb8f011a0,0x10fa3d98,0xfd2183b8,0x4afcb56c,0x2dd1d35b,
                    0x9a53e479,0xb6f84565,0xd28e49bc,0x4bfb9790,0xe1ddf2da,0xa4cb7e33,
                    0x62fb1341,0xcee4c6e8,0xef20cada,0x36774c01,0xd07e9efe,0x2bf11fb4,
                    0x95dbda4d,0xae909198,0xeaad8e71,0x6b93d5a0,0xd08ed1d0,0xafc725e0,
                    0x8e3c5b2f,0x8e7594b7,0x8ff6e2fb,0xf2122b64,0x8888b812,0x900df01c,
                    0x4fad5ea0,0x688fc31c,0xd1cff191,0xb3a8c1ad,0x2f2f2218,0xbe0e1777,
                    0xea752dfe,0x8b021fa1,0xe5a0cc0f,0xb56f74e8,0x18acf3d6,0xce89e299,
                    0xb4a84fe0,0xfd13e0b7,0x7cc43b81,0xd2ada8d9,0x165fa266,0x80957705,
                    0x93cc7314,0x211a1477,0xe6ad2065,0x77b5fa86,0xc75442f5,0xfb9d35cf,
                    0xebcdaf0c,0x7b3e89a0,0xd6411bd3,0xae1e7e49,0x00250e2d,0x2071b35e,
                    0x226800bb,0x57b8e0af,0x2464369b,0xf009b91e,0x5563911d,0x59dfa6aa,
                    0x78c14389,0xd95a537f,0x207d5ba2,0x02e5b9c5,0x83260376,0x6295cfa9,
                    0x11c81968,0x4e734a41,0xb3472dca,0x7b14a94a,0x1b510052,0x9a532915,
                    0xd60f573f,0xbc9bc6e4,0x2b60a476,0x81e67400,0x08ba6fb5,0x571be91f,
                    0xf296ec6b,0x2a0dd915,0xb6636521,0xe7b9f9b6,0xff34052e,0xc5855664,
                    0x53b02d5d,0xa99f8fa1,0x08ba4799,0x6e85076a
            };
        }
Хотя, в алгоритм не вникал, Мб без такого замечательного массива никак...(но сомневаюсь), а еще аналогичные для S1, S2, S3

Вот тут мне что-то не нравится:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        //converts a single hex character to it's decimal value
        private byte GetHex(char x)
        {
            if (x <= '9' && x >= '0')
            {
                return (byte)(x - '0');
            }
            else if (x <= 'z' && x >= 'a')
            {
                return (byte)(x - 'a' + 10);
            }
            else if (x <= 'Z' && x >= 'A')
            {
                return (byte)(x - 'A' + 10);
            }
            return 0;
        }
Судя по всему эта функция должна преобразовывать цифру в 16ичной СС в 10 СС, но в 16ичной СС нет никаких 'Z', вместо 'Z' должно быть 'F'

Еще вот тут:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 
            // label1
            // 
            this.label1.AutoSize = true;
            this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
            this.label1.Location = new System.Drawing.Point(147, 9);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(176, 20);
            this.label1.TabIndex = 0;
            this.label1.Text = "CryptMe alpha 1.0.3";
            this.label1.TextAlign = System.Drawing.ContentAlignment.TopCenter;
            // 
            // label2
            // 
            this.label2.AutoSize = true;
            this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 12.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
            this.label2.Location = new System.Drawing.Point(58, 39);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(357, 20);
            this.label2.TabIndex = 1;
            this.label2.Text = "Made by FanAs; Algorythm by Bruce Schneier.";
и еще куча лэйблов, ИМХО стоит давать более естественные имена. Lable1, lable2 - не информативно. Лучшие пояснения к коду - это сам код, а тут, мало того, что lable1 ни о чем не
говорит читателю, но и комментарий:
C#
1
2
3
// 
            // label1
            //
говорит не больше )

Я бегло просмотрел только About.Designer.cs и BlowFish.cs

Добавлено через 3 минуты
а еще, в функции GetHex ветки else вообще ненужны, походу.
0
54 / 42 / 7
Регистрация: 08.04.2011
Сообщений: 227
13.08.2011, 09:48  [ТС] 18
Итак, давайте по порядку. Метод шифрования был найден на вики, т.к. он является open-source проектам, к его коду я не имею отошения. Комментарии были поставлены автоматически visual studio. + У Form1 код лучше, с правильными названиями. Алгоритм работает прекрасно, без всего, что вы перечисляли он работать лучше не станет.
0
Заблокирован
13.08.2011, 10:35 19
Цитата Сообщение от FanAs Посмотреть сообщение
Алгоритм работает прекрасно, без всего, что вы перечисляли
Зачем мне отвечать, если изменять что-либо вы не желаете?
Цитата Сообщение от FanAs Посмотреть сообщение
У Form1 код лучше, с правильными названиями.
Названия, конечно, правильные, и комментарии замечательные(специально вот заглянул в Form1) :
C#
1
2
3
4
5
6
7
8
9
           // 
            // button1
            // 
            this.button1.Location = new System.Drawing.Point(12, 58);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(92, 42);
            this.button1.TabIndex = 2;
            this.button1.UseVisualStyleBackColor = true;
            this.button1.Click += new System.EventHandler(this.button1_Click);
А еще button2,3, groupbox1, radiobutton1,2,3, и в завершении form1...Я понимаю, что студия сама формирует имена форм и комментарии, но это не значит что их не надо изменять.

Ну и напоследок:
Цитата Сообщение от FanAs Посмотреть сообщение
к его коду я не имею отошения
Цитата Сообщение от FanAs Посмотреть сообщение
Комментарии были поставлены автоматически
А что мы оцениваем - код с вики, широкоизвестный алгоритм шифрования, автоматически сгенерированные комментарии?
Возвращаясь к первому посту:
Цитата Сообщение от FanAs Посмотреть сообщение
Сделан удобный GUI, генератор паролей и help. Выставляю на ваш суд.
help я оценил первым делом. Удобный GUI, видимо, был набросан в редакторе форм и даже имена форм и элементов управления не сильно старались изменить на человеческие. Осталось оценить редактор паролей, как я понял это вот это? :
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void gen_Click(object sender, EventArgs e)
        {
            Random rnd = new Random();
 
            Char[] pwdChars = new Char[10] { '1', '2', '3', '4', '5', '6', '7', '8', '9', '0' };
            pass.Text = String.Empty;
            for (int i = 0; i < length; i++)
                pass.Text += (char)rnd.Next(97, 123);
            pass.Text += (char)rnd.Next(65, 91);
            pass.Text += (char)rnd.Next(33, 48);
            pass.Text += (char)rnd.Next(48, 58);
            pass.Text += (char)rnd.Next(58, 65);
 
            insertpass.Enabled = true;
        }
Если я прав - то, допустим, мне нравится произведение, и метод Next, вроде бы правильно используете, но комментарии к коду, опять, не помешали бы(на этот раз студия не сгенерировала автоматически - поэтому комментариев нет вообще). Прокомментировать тут ИМХО есть чего, например, мне не понятно зачем в конце добавляются 4 символа, причем первый - заглавная английская буква, второй - знак из [!,",#,(,),...], третий - цифра, и четвертый - знак из [<,=,>,?,@]. Вот зачем эти знаки в конце мне не понятно, а код не прокомментирован.

Не по теме:

Моя оценка работы 2 раза написана выше.



Добавлено через 7 минут

Не по теме:

И еще, от темы я отписался и больше тут не отвечу, т.к. я работу оценил, а спорить с ТС о том, насколько правильна моя оценка я не желаю.(тем более, тут спорить неочем, т.к. 99% кода - копипаст или сгенерированно автоматически).

0
159 / 152 / 50
Регистрация: 03.08.2011
Сообщений: 299
Записей в блоге: 14
13.08.2011, 13:46 20
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void gen_Click(object sender, EventArgs e)
        {
            Random rnd = new Random();
 
            Char[] pwdChars = new Char[10] { '1', '2', '3', '4', '5', '6', '7', '8', '9', '0' };
            pass.Text = String.Empty;
            for (int i = 0; i < length; i++)
                pass.Text += (char)rnd.Next(97, 123);
            pass.Text += (char)rnd.Next(65, 91);
            pass.Text += (char)rnd.Next(33, 48);
            pass.Text += (char)rnd.Next(48, 58);
            pass.Text += (char)rnd.Next(58, 65);
 
            insertpass.Enabled = true;
        }
Ещё возникает вопрос, зачем там массив символов (который pwdChars) нужен. Места, где он используется, я так и не нашёл. Я, конечно, с шарпом на вы, но без этого массива всё прекрасно работает.
0
13.08.2011, 13:46
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru