Вверх ↑
Этот топик читают: Гость
Ответов: 632
Рейтинг: 4
#16: 2017-05-04 21:56:22 ЛС | профиль | цитата
http://lunnyy1svet.ml/%D0%9B%D1%83%D0%BD%D0%BD%D1%8B%D0%B9%20%D1%81%D0%B2%D0%B5%D1%82%20%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D1%8F.exe
Это мой сервер чата.

Редактировалось 1 раз(а), последний 2017-05-04 21:56:29
карма: 0

0
Ответов: 4621
Рейтинг: 746
#17: 2017-05-05 10:55:32 ЛС | профиль | цитата
Меня на твой сайт антивирус ESET не пускает.
карма: 26

0
Ответов: 322
Рейтинг: 8
#18: 2017-05-05 11:13:59 ЛС | профиль | цитата
На меня Аваст ругается!
зайти не могу.
карма: 0

1
Голосовали:Vadimluk1
Ответов: 632
Рейтинг: 4
#19: 2017-05-05 13:31:55 ЛС | профиль | цитата
Netspirit и Dad2016, специально для вас ссылка.
Чат клиент и сервер:http://www.fayloobmennik.net/6976646/file/%D0%A7%D0%B0%D1%82.rar
Это мой сервер чата.:http://www.fayloobmennik.net/6976657/file/%D0%9B%D1%83%D0%BD%D0%BD%D1%8B%D0%B9%20%D1%81%D0%B2%D0%B5%D1%82%20%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D1%8F.exe
Сайт у меня полностью безопасен, а антивирус ругаются из домена бесплатного.
карма: 0

0
Ответов: 4621
Рейтинг: 746
#20: 2017-05-05 14:04:51 ЛС | профиль | цитата
Чисто для общего развития. Как я понимаю, шифрование у тебя используется для защиты от перехвата. Тогда твой принцип использования ни от чего не защитит, если злоумышленник узнает пароль.
Правильная реализация - это шифрование неизвестным паролем. Например, серверу и клиенту известен пароль, под которым пользователь заходит в чат - можно использовать его.
Если нужна ещё большая стойкость - реализуется асимметричная схема шифрования:
- на сервере один раз генерируется пара ключей - публичный и приватный
- при установке подключения публичный ключ передаётся клиенту
- клиент генерирует рандомный длинный пароль - сессионный ключ
- сессионный ключ шифруется публичным ключом сервера и передаётся на сервер
- сервер с помощью приватного ключа расшифровывает полученный сессионный ключ
- таким образом и клиент и сервер знают одинаковы сессионный ключ и шифруют весь обмен данными этим ключом.

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

Редактировалось 2 раз(а), последний 2017-05-05 14:05:28
карма: 26

0
Ответов: 322
Рейтинг: 8
#21: 2017-05-05 14:51:59 ЛС | профиль | цитата
Vadimluk1 писал(а):
специально для вас ссылка.

Только что зашёл на форум и не успел скачать
фото.jpg
карма: 0

1
Голосовали:Vadimluk1
Ответов: 632
Рейтинг: 4
#22: 2017-05-05 15:27:47 ЛС | профиль | цитата
Я не удалял, сейчас на майл облако загружу!

--- Добавлено в 2017-05-05 15:31:14

Чат клиент и сервер:https://cloud.mail.ru/public/F3Mh/ktcXQjxqs
Это мой сервер чата:https://cloud.mail.ru/public/2nCj/BQNVR93Rv

Редактировалось 1 раз(а), последний 2017-05-05 15:31:14
карма: 0

0
Ответов: 632
Рейтинг: 4
#23: 2017-05-05 18:50:15 ЛС | профиль | цитата
Netspirit писал(а):
Чисто для общего развития. Как я понимаю, шифрование у тебя используется для защиты от перехвата. Тогда твой принцип использования ни от чего не защитит, если злоумышленник узнает пароль.
Правильная реализация - это шифрование неизвестным паролем. Например, серверу и клиенту известен пароль, под которым пользователь заходит в чат - можно использовать его.
Если нужна ещё большая стойкость - реализуется асимметричная схема шифрования:
- на сервере один раз генерируется пара ключей - публичный и приватный
- при установке подключения публичный ключ передаётся клиенту
- клиент генерирует рандомный длинный пароль - сессионный ключ
- сессионный ключ шифруется публичным ключом сервера и передаётся на сервер
- сервер с помощью приватного ключа расшифровывает полученный сессионный ключ
- таким образом и клиент и сервер знают одинаковы сессионный ключ и шифруют весь обмен данными этим ключом.

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

Редактировалось 2 раз(а), последний 2017-05-05 14:05:28

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

Редактировалось 3 раз(а), последний 2017-05-05 18:52:45
карма: 0

0
Ответов: 632
Рейтинг: 4
#24: 2017-05-06 16:21:05 ЛС | профиль | цитата
-Смайлы отображаются правильно.
-Добавил список пользователей в чате. (При заходе отображается не правильно)

Список этот ещё один шаг для создания личного чата между пользователями.
Пока не понятно в чем дела!
карма: 0

0
Ответов: 632
Рейтинг: 4
#25: 2017-05-07 14:08:29 ЛС | профиль | цитата
-Добавил робота, которые на ключевые слова, отвечает заменой!
-Робот, не совершенный, и есть в нем ошибки.
-Программа имеет мелкие ошибки, которые не понятно как исправить!
карма: 0

0
Ответов: 632
Рейтинг: 4
#26: 2017-05-07 17:22:39 ЛС | профиль | цитата
Кто знает что можно оптимизировать, улучшить. Пожалуйста уделите внимание схеме и сделать. Также если вы знаете что можно добавить новое в программу пожалуйста добавьте! Вы сразу будете добавлены в список автором программы!
карма: 0

0
Ответов: 632
Рейтинг: 4
#27: 2017-05-07 21:03:44 ЛС | профиль | цитата
Я обнаружил, при работе на разных компьютерах странные не сходство. Надо что бы кто объяснил из чего.

--- Добавлено в 2017-05-07 21:04:07

желательно как исправить

Редактировалось 1 раз(а), последний 2017-05-07 21:04:07
карма: 0

0
Ответов: 632
Рейтинг: 4
#28: 2017-05-07 23:30:09 ЛС | профиль | цитата
-Добавил схему чата на андроид, правда программа выкидывает. В схеме какая то мелочь все портит. Кому будет не лень посмотрите. У меня время очень мало на hiasm.
карма: 0

0
Ответов: 4621
Рейтинг: 746
#29: 2017-05-08 11:11:19 ЛС | профиль | цитата
Vadimluk1 писал(а):
Если приватный такой же будет, как и публичный
Смотри тут: https://ru.wikipedia.org/wiki/Криптосистема_с_открытым_ключом. Если коротко, то приватный и публичный ключи не одинаковые, публичным ключом можно только зашифровать данные, приватным только расшифровать. Этот механизм - это отдельный алгоритм шифрования (гугли RSA, также вкладка "Инструменты -> Криптография" в HiAsm), в дополнение к тем компонентам шифрования, которые ты сейчас используешь. Те компоненты представляют симметричный алгоритм - один и тот же ключ служит для шифрования и расшифровки.
Я бы рекомендовал тебе вообще не заботиться о шифровании в твоем чате - лучше избавляйся от "мелкие ошибки, которые не понятно как исправить"

Vadimluk1 писал(а):
при работе на разных компьютерах странные не сходство
Читай внимательно тему по TCP компонентах, может что и найдешь полезное. Например, если ты отправляешь одну строку, то на другом конце она может придти несколькими частями, которые будут выданы несколькими событиями onReceive. Тебе нужна гарантия, что ты получил всю строку перед её обработкой.

Редактировалось 1 раз(а), последний 2017-05-08 11:12:33
карма: 26

0
Ответов: 632
Рейтинг: 4
#30: 2017-11-19 00:03:46 ЛС | профиль | цитата
Программу "чат" сделал, с самого начала, в этот раз использовал polymorphMulti, но конкретной логической схемы нет, как сделать чат с регистрации. Не у кого нет опыта, как делать чат с функциями дополнительными?

Add(MainForm,2953706,21,105)
{
Caption="Чат"
BorderStyle=1
Position=1
}
Add(TCP_Server,8420855,217,119)
{
Port=10
Point(doSendByIp)
link(onRead,3149228:doEvent,[(268,125)(268,90)])
link(onConnect,3137687:doEvent1,[(271,132)(271,202)])
link(onDisconnect,894005:doGetIndex,[(285,139)(285,370)])
}
Add(TCP_Client,7538811,644,112)
{
Port=10
IP="127.0.0.1"
link(onRead,11558353:doEvent,[(688,118)(688,111)])
}
Add(PolymorphMulti,5570706,441,133)
{
Selected="base"
WorkScheme=1
link(Имя,12499385:Value,[(447,107)(454,107)])
}
BEGIN_SDK
Add(EditPolyMulti,28163,21,21)
{
WorkCount=#5:##add|8:##delete|8:##select|4:#Имя|10:Поиск имен|
EventCount=#8:onSearch|
VarCount=#7:##index|
DataCount=#3:Имя|
Point(##add)
Point(##delete)
Point(##select)
Point(##index)
link(#Имя,9271637:doData,[(35,48)(35,62)])
link(Поиск имен,8593304:doSearch,[(35,55)(35,125)])
}
Add(DoData,9271637,49,56)
{
link(onEventData,13284691:doValue,[])
link(Data,28163:Имя,[(55,38)(27,38)])
}
Add(Memory,13284691,105,56)
{
}
Add(Position,8593304,56,119)
{
ShortSearch=1
link(onSearch,28163:onSearch,[(204,125)(204,27)])
link(Str,13284691:Value,[(62,103)(111,103)])
}
END_SDK
Add(StrList,894005,315,322)
{
Point(doGetIndex)
Point(onGetIndex)
link(onGetIndex,5570706:##delete,[(370,335)(370,146)])
}
Add(Hub,3137687,294,196)
{
OutCount=3
link(onEvent1,5570706:##add,[(361,202)(361,139)])
link(onEvent2,894005:doAdd,[(312,209)(312,328)])
link(onEvent3,12042235:doValue,[])
}
Add(MT_IndexToChanel,11558353,700,105)
{
link(onEvent1,9474863:doValue,[])
}
Add(MT_ChanelToIndex,8802413,70,154)
{
link(onIndex,3577715:doAdd,[(118,160)(118,153)])
}
Add(DoData,7828319,420,210)
{
link(onEventData,10989451:In,[])
link(Data,5570706:##index,[(426,190)(447,190)])
}
Add(LineBreak,1781269,21,154)
{
link(Out,8802413:doWork1,[])
Primary=[10989451,441,56]
}
Add(MT_Add,3577715,133,147)
{
link(onAdd,8420855:doSendByIp,[(170,153)(170,146)])
link(Data,9841982:Var,[])
}
Add(Memory,12042235,322,210)
{
link(onData,7828319:doData,[])
}
Add(LineBreak,690615,315,266)
{
Type=1
link(Data,12042235:Value,[(321,247)(328,247)])
Primary=[9841982,-182,-147]
}
Add(MT_Memory,9474863,784,105)
{
}
Add(TCP_Client,11491821,595,217)
{
Port=10
IP="127.0.0.1"
link(onRead,12270631:doEvent,[])
}
Add(MT_IndexToChanel,12270631,651,217)
{
link(onEvent1,9746909:doValue,[])
}
Add(MT_Memory,9746909,735,217)
{
}
Add(Edit,2022224,693,42)
{
Left=240
Top=45
Width=125
link(onEnter,10563648:doAdd,[(730,55)(730,76)])
}
Add(Edit,9204480,700,154)
{
Left=240
Top=95
Width=125
link(onEnter,14101554:doAdd,[(744,167)(744,177)(520,177)(520,195)])
}
Add(MT_ChanelToIndex,15920054,539,238)
{
link(onIndex,11491821:doSend,[(583,244)(583,237)])
}
Add(MT_ChanelToIndex,9101977,595,126)
{
link(onIndex,7538811:doSend,[])
}
Add(MT_IndexToChanel,3149228,287,84)
{
link(onEvent1,13190347:doGet,[(338,90)(338,83)])
link(onEvent2,4251415:doSeparateMT,[(331,97)(331,132)])
}
Add(MT_Add,10563648,735,70)
{
link(onAdd,9101977:doWork1,[(779,76)(779,104)(583,104)(583,132)])
link(Data,1475145:Var1,[(741,58)])
}
Add(MT_Get,13190347,357,77)
{
link(onData,10342733:doEvent1,[(397,83)(397,153)])
link(onGet,12499385:doValue,[(419,90)(419,62)])
}
Add(Memory,12499385,448,56)
{
link(onData,5570706:#Имя,[(492,62)(492,108)(408,108)(408,160)])
}
Add(Edit,4891105,707,266)
{
Left=235
Top=130
Width=140
Text="Поиск"
link(onEnter,12505618:doAdd,[(751,279)(751,286)(471,286)(471,265)])
}
Add(Edit,2709569,616,63)
{
Left=235
Top=70
Width=140
Text="Поиск"
}
Add(GetDataEx,1475145,749,53)
{
Angle=1
link(Data,9474863:Value,[(765,58)(765,149)(790,149)])
}
Add(MT_Add,14101554,532,189)
{
link(onAdd,15920054:doWork1,[(576,195)(576,216)(527,216)(527,244)])
link(Data,9746909:Value,[(538,170)(640,170)(640,261)(741,261)])
}
Add(Hub,10342733,406,147)
{
InCount=2
OutCount=1
link(onEvent1,5570706:##select,[])
}
Add(Memory,5144550,497,84)
{
}
Add(Host,15463282,560,14)
{
}
Add(GetDataEx,14519801,546,98)
{
link(Data,15463282:LoacalIP,[(552,89)(573,89)])
}
Add(MT_MultiData,4251415,343,126)
{
Count=3
link(onData1,5144550:doValue,[(436,132)(436,90)])
link(onData2,5570706:Поиск имен,[(408,139)(408,167)])
}
Add(MT_Add,12505618,483,259)
{
link(onAdd,15920054:doWork2,[(527,265)(527,251)])
link(Data,14519801:Var1,[(489,103)])
}
Add(MT_Add,4125678,532,133)
{
link(Data,14519801:Var2,[(538,120)(552,120)])
}

карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)