چت سرور رمزنگاری شده
این پروژه یک چت سرور رمزنگاری شده است که از زبان برنامه نویسی Go برای سرور و کلاینت استفاده شده است.
گیتهاب
- سال طراحی : 1401
- فریمورک / زبان برنامه نویسی : GO
- تکنولوژی ها : GPG - Docker - ...
- متن باز : بله
این پروژه یک سیستم ساده چت بوده که با یک کانال Pub/Sub کار می کند. تمامی پیام های ارسالی توسط کلاینت ها رمزنگاری شده و در سمت دیگر رمزگشایی می شوند.
┌────────┐ ┌────────┐
Message ─────► Client │ │ Client ├──Decrypt──►
└───┬────┘ └────▲───┘
│ │
│ ┌────────┐ │
└─Encrypt───► Server ├───────┘
└────────┘
تنظیمات
جهت کار با پروژه به تعدادی متغییر Environment نیاز دارید که در فایل .env قرار می دهید.
PORT=
HOST=
PUBLIC_KEY_FILE=
PRIVATE_KEY_FILE=
PASSPHRASE=
| مقدار پیشفرض | توضیحات | متغییر |
|---|---|---|
server |
حالت برنامه برای اجرا. کلاینت یا سرور | START_MODE |
12345 |
پورت شبکه که سرور با آن کار می کند | PORT |
localhost |
آدرس شبکه که سرور با آن کار می کند | HOST |
| آدرس فایل کلید عمومی | PUBLIC_KEY_FILE | |
| آدرس فایل کلید خصوصی | PRIVATE_KEY_FILE | |
| کلمه عبور کلید خصوصی | PASSPHRASE |
جهت مشخص نمودن نوع فعالیت پروژه می توانید از متغییر START_MODE استفاده کنید. مقادیر مجاز این متغییر server و client می باشد.
همچنین توجه داشته باشید تمامی کارکتر های خاص در کلمه عبور باید Escape شود.
روش استفاده
ابتدا فایل باینری را با توجه به سیستم عامل و معماری خود از صفحه ریلیز دانلود کنید.
سرور
START_MODE=server ./go-chat-linux-amd64
کلاینت
START_MODE=client ./go-chat-linux-amd64
جهت اجرای برنامه در سیتم عامل MacOS باید به کلاینت دسترسی اجرا بدهید. برای این کار به آدرس
System Preferences > Security & Privacy > Generalرفته وOpen Anywayرا بزنید.
داکر
با توجه به ساختار پروژه ٬ برای کلاینت نیازی به ایمیج داکر نیست و تنها برای سرور نیاز به آن دارید.
docker run -it hatamiarash7/go-chat-server
می توانید از متغیر های HOST و PORT برای تنظیمات اتصال به سرور استفاده کنید.
docker run -it -e PORT=1234 -e HOST=0.0.0.0 hatamiarash7/go-chat-server
مقادیر پیشفرض
PORTوHOSTبرای سرور12345و0.0.0.0می باشد.