Sol macOS musiqa pleerini ochiq kodga aylantirdi
Sol - macOS uchun to'liq ochiq kodli musiqa pleeri, kutubxonani joyida o'qib, turli formatlarni qo'llab-quvvatlaydi, Homebrew orqali ham o'rnatish mumkin.

Internetda maxfiy suhbatlar uchun ko'p platformalar mavjud, lekin ko'pchiligi serverga ma'lumotlarni saqlaydi yoki foydalanuvchi hisobini talab qiladi. Hard-Chat bu an'anaviy modelni butunlay bekor qiladi: brauzerda to'g'ridan-to'g'ri P2P aloqasi, AES‑GCM 256‑bit shifrlash, va sahifa yopilganda hech qanday ma'lumot qoldirmaydi.
Hard-Chat GitHub sahifasida ochiq kodli loyiha sifatida taqdim etilgan. Dastur HTML, CSS va JavaScriptdan iborat bo'lib, hech qanday server tomon kodini ishlatmaydi. Faqat quyidagi tashqi infratuzilma komponentlari ishlatiladi:
PBKDF2(
password = Room Key,
salt = "p2p-zero-trace-salt-v1" (fixed, hardcoded),
iterations = 100,000,
hash = SHA-256
) → 256-bit AES-GCM key
Har bir suhbat sessiyasi uchun foydalanuvchi "Initialize Room" tugmasini bosganda 100‑belgili Room Key tasodifiy yaratiladi. Bu kalit quyidagi maqsadlarda ishlatiladi:
Kalit yaratishda crypto.getRandomValues() funksiyasi ishlatiladi, bu kriptografik xavfsizlikni ta'minlaydi. Kalitda katta va kichik harflar, raqamlar hamda "-_!@#$%^&*" belgilarining kombinatsiyasi bo'lib, entropiya juda yuqori.
SHA-256(Room Key) → first 32 hex characters, prefixed with "ztt-"
Host va Guest bir xil Room Key ni qo'lda almashgandan so'ng, PeerJS brokeri orqali bir-birini topadi. Keyin WebRTC ICE (Interactive Connectivity Establishment) protokoli ishga tushadi:
Ulanish 120 soniya ichida amalga oshmasa, sessiya avtomatik ravishda tugaydi, PeerJS ob'ekti va DataConnection yo'q qilinadi.
1. Generate a random 12-byte IV (crypto.getRandomValues)
2. ciphertext = AES-GCM-Encrypt(key, IV, plaintext)
3. payload = IV || ciphertext (concatenated, IV in plaintext at the front)
4. Send payload as a Uint8Array via conn.send()
Hard-Chat ni mashhur serverli platformalar (Telegram, Signal, WhatsApp) bilan solishtirsak, quyidagi farqlarni ko'rish mumkin:
Bu farqlar xavfsizlikni oshiradi, lekin foydalanuvchi tajribasini ham soddalashtiradi: har safar yangi kalit yaratish, aloqani qo'lda boshlash talab etiladi.
1. Extract the first 12 bytes as the IV
2. The rest is the ciphertext (includes the 16-byte GCM authentication tag at the end)
3. plaintext = AES-GCM-Decrypt(key, IV, ciphertext)
Hard-Chat ning ba'zi texnik cheklovlari ham mavjud:
Kelajakda quyidagi savollar hal qilinishi lozim: PeerJS brokeri o'rniga decentralizatsiya qilingan signalling protokoli, kalit almashish avtomatlashtirish (masalan, QR kod orqali) va mobil qurilmalarda offline rejimda ishlash imkoniyati.
GSsqZCtDC7rf53U6gC5cJ4weAYYT9g7twxz9t15mfRDV
Hard-Chat asosan quyidagi auditoriyaga qiziqarli bo'ladi:
Ushbu foydalanuvchilar uchun platforma quyidagi afzalliklarni taqdim etadi:
Hard-Chat brauzerda to'liq serverless, RAM‑only P2P chatni amalga oshiruvchi noyob loyiha. U WebRTC, PeerJS va kuchli kriptografik algoritmlarni birlashtirib, foydalanuvchilarga tarixsiz, shifrlangan aloqani taklif etadi. Texnik jihatdan yechim mustahkam, lekin ulanishni boshlash jarayoni, brokerga tayanish va uzun Room Key ni qo'lda almashish kabi amaliy cheklovlar mavjud. Kelajakda signallingni decentralizatsiya qilish va kalit almashishni soddalashtirish orqali bu cheklovlar yengillashishi mumkin. Xulosa qilib aytganda, Hard-Chat maxfiy, tezkor va serverga bog'liq bo'lmagan chatni qidirayotgan foydalanuvchilar uchun qimmatli vosita bo'lib, ochiq kodli hamjamiyatda yanada rivojlanish imkoniyatiga ega.
Asl manba: github.com