في هذا العصر الحديث ، كل شخص متصل عبر الإنترنت. يقوم Facebook و WhatsApp و Instagram ، وما إلى ذلك ... بعملهم في تسليم الرسالة من شخص إلى آخر بفعالية. ولكن كل هذه الفشل تفشل عندما يتعلق الأمر بالحفاظ على البيانات الخاصة ، فهو دائمًا على الأخبار التي يتم تسريبها حول بيانات المستخدم. على الرغم من أن هذا قد لا يمثل مشكلة للعديد من المستخدمين لأنهم يعتبرون أنفسهم "كتابًا مفتوحًا" ، إلا أن القليل ممن يرغبون في الحفاظ على حياتهم الخاصة يريد حل أفضل لهذا. من مشروعنا الصغير نحاول المساهمة في هذا الهدف.
فيديو تجريبي
Step-1 : قم بتنزيل ملف .jar من هنا.
الخطوة الثانية : لتشغيل الملف ، يجب تثبيت JRE. انظر التعليمات هنا
الخطوة 3 : قم بتشغيل ملف .jar ، ( ملاحظة لتشغيلها على Linux Distros ، تحقق من مربع الاختيار القابل للتنفيذ في خصائص الملف ضمن علامة التبويب أذونات )
الخطوة 4 : ستظهر الشاشة التالية.
STEP-5 : قم بتشغيل الخادم وأدخل أي منفذ مجاني (EX-> 3000) وانقر فوق "موافق" .
الخطوة 5 : ( لتوصيل الأنظمة عبر الإنترنت )
ngrok tcp 3000
، استبدل 3000 برقم المنفذ الذي تم إدخاله أثناء إنشاء الخادم .الخطوة 6 : قم بتشغيل لوحة الدردشة وأدخل اسم المضيف والمنفذ والرمز السري.
الخطوة-7 : شارك رابط إعادة توجيه NGROK من اسم المضيف ومنفذ NGROK للمستخدمين الآخرين ، من أجل الاتصال بالخادم (لا يتطلبون تشغيل الخادم).
الخطوة 8 : بحلول هذا الوقت ، يمكن بدء المحادثة ، لكن الرسائل ستكون بتنسيق مشفر لفك تشفير رسالة مستخدم معين ، والحصول على رمزه السري ومعرفه الفريد وإدخاله عن طريق الضغط على أسرار إضافة .
الخطوة 9 : لمسح الدردشة على جانبك ، اضغط على زر Clear .
STEP-10 : لحفظ الزر " حفظ الدردشة". سيقوم بإنشاء ملف JSON في الدليل الحالي.
Class Descriptions:
Crypto: Used for encoding and decoding messages through AES algorithm.
Server: Waits for the client to connect and starts the UserThread.
UserThread: Separate thread for each client connected, it stores client's data and broadcast messages to other clients.
Client: Used to create a client than starts two new thread, ReadThread and WriteThread.
WriteThread: When “Send” button is clicked it reads data from the user and encrypt it and write it to socket OutputStream.
ReadThread: Reads the broadcasted message and decrypt it if key is found, and write the decrypted message to the ChatPanel.
Class Description:
Main Window: Contains GUI for the Main screen of the APP.
CodeDialog: Dialog box to add secretID and uniqueID of a client. It also contains validation logic.
ClientDialog: Dialog box to add Client information. It also contains validation logic.