چت سرور رمزنگاری شده
این پروژه یک چت سرور رمزنگاری شده است که از زبان برنامه نویسی 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
می باشد.